note.nkmk.me

pandasで中央値を取得するmedian

Date: 2019-04-21 / tags: Python, pandas

pandas.DataFrame, pandas.Seriesの中央値(1/2分位数、50パーセンタイル)を取得するにはmedian()メソッドを使う。

中央値の定義は以下の通り。

中央値(ちゅうおうち、英: median)とは、代表値の一つで、有限個のデータを小さい順に並べたとき中央に位置する値。
...
データが偶数個の場合は、中央に近い2つの値の算術平均をとる。
中央値 - Wikipedia

ここでは以下の内容について説明する

  • median()の基本的な使い方
    • 要素数が偶数の場合
  • 行・列を指定: 引数axis

中央値を含む様々な要約統計量を算出するメソッドdescribe()もある。データの概観をつかむためならこちらのほうが便利。

また、中央値は1/2分位数、50パーセンタイルであるが、任意の分位数・パーセンタイルを取得したい場合はquantile()を使う。

スポンサーリンク

median()の基本的な使い方

以下のpandas.DataFrameを例とする。

import pandas as pd

df = pd.DataFrame({'col_1': range(5),
                   'col_2': [i ** 2 for i in range(5)],
                   'col_3': list('abcde')})

print(df)
#    col_1  col_2 col_3
# 0      0      0     a
# 1      1      1     b
# 2      2      4     c
# 3      3      9     d
# 4      4     16     e

デフォルトでは数値列の中央値をpandas.Seriesで返す。数値以外の列は無視される。

print(df.median())
# col_1    2.0
# col_2    4.0
# dtype: float64

print(type(df.median()))
# <class 'pandas.core.series.Series'>

pandas.Seriesからmedian()を呼んだ場合はその中央値が浮動小数点数floatで返される。

print(df['col_1'].median())
# 2.0

print(type(df['col_1'].median()))
# <class 'numpy.float64'>

要素数が偶数の場合

上の例のように要素数が奇数であれば中央の値がそのまま返される。

要素数が偶数の場合は中央2つの値の平均値が返される。

df_even = pd.DataFrame({'col_1': range(6),
                        'col_2': [i ** 2 for i in range(6)],
                        'col_3': list('abcdef')})

print(df_even)
#    col_1  col_2 col_3
# 0      0      0     a
# 1      1      1     b
# 2      2      4     c
# 3      3      9     d
# 4      4     16     e
# 5      5     25     f

print(df_even.median())
# col_1    2.5
# col_2    6.5
# dtype: float64

行・列を指定: 引数axis

デフォルトは列ごとに処理されるが、引数axis=1とすると行ごとの処理となる。この場合も数値以外の列は無視される。

print(df)
#    col_1  col_2 col_3
# 0      0      0     a
# 1      1      1     b
# 2      2      4     c
# 3      3      9     d
# 4      4     16     e
print(df.median(axis=1))
# 0     0.0
# 1     1.0
# 2     3.0
# 3     6.0
# 4    10.0
# dtype: float64
スポンサーリンク
シェア
このエントリーをはてなブックマークに追加

関連カテゴリー

関連記事