PythonのPandasで中央値を取得する方法について

Python,イメージ

AI実装検定のご案内

Pythonの Pandas で中央値(median)を取得する方法はいくつかあります。

ここでは基本的な使い方から、実務でよく使う応用パターンまで詳しく解説します。

目次

基本:Seriesから中央値を取得

Pandasの Series(1次元データ)では、 .median() メソッドを使います。

import pandas as pd

# サンプルデータ
data = pd.Series([1, 2, 3, 4, 5, 100])

# 中央値を取得
median_value = data.median()
print(median_value)  # 3.5
  • データが偶数個 → 真ん中2つの平均値
  • データが奇数個 → 真ん中の値

DataFrameで列ごとに中央値を取得

DataFrame では複数列を持つので、各列ごとに中央値を計算できます。

df = pd.DataFrame({
    "A": [1, 2, 3, 4, 5],
    "B": [10, 20, 30, 40, 50],
    "C": [7, 8, 9, 10, 11]
})

print(df.median())

特定の列だけ指定する場合

print(df["A"].median())  # 3.0

行ごとに中央値を取得(axisオプション)

列単位だけでなく、行ごとに中央値を計算することも可能です。

# 行方向(axis=1)の中央値
print(df.median(axis=1))

欠損値(NaN)がある場合

.median() はデフォルトで NaNを無視して計算 します。

data_with_nan = pd.Series([1, 2, None, 4, 5])
print(data_with_nan.median())  # 3.0

もしNaNを含めて計算したい場合は、事前に埋める必要があります。

print(data_with_nan.fillna(0).median())  # 2.0

グループごとの中央値(groupby)

カテゴリごとに中央値を計算する場合は groupby() と組み合わせます。

df2 = pd.DataFrame({
    "Category": ["A", "A", "B", "B", "B"],
    "Value": [10, 20, 15, 25, 35]
})

print(df2.groupby("Category")["Value"].median())

応用:describe()でまとめて統計量を見る

中央値だけでなく、平均値・標準偏差・最大最小などまとめて確認するなら describe() が便利です。

print(df.describe())

出力には「50%」という行があり、これが中央値です。

まとめ

  • Series.median() → 1次元データの中央値
  • DataFrame.median() → 各列(または行)の中央値
  • NaNは無視される(埋めたい場合は fillna()
  • groupby() + median() でグループ別の中央値
  • describe() で中央値を含む統計要約を一括確認

以上、PythonのPandasで中央値を取得する方法についてでした。

最後までお読みいただき、ありがとうございました。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次