Pythonで「中央値を求める5つの方法」を詳しく解説!

PRについて
※このサイトはアフィリエイト広告(Amazonアソシエイト含む)を掲載しています。
スポンサーリンク
※このサイトはアフィリエイト広告(Amazonアソシエイト含む)を掲載しています。
Pythonで「中央値を求める5つの方法」を詳しく解説! 統計学
Pythonで「中央値を求める5つの方法」を詳しく解説!
統計学入門

Pythonを用いて、統計の基本となる中央値について全部で5つの求め方を紹介します。

リスト(list)型や統計で良く用いるモジュールのstatistics・numpy・pandasを使った方法を詳しく解説していきます!

ごまお
ごまお

Pythonで中央値を求めてみましょう。
全部で5つの方法を紹介しますね。

ごまこ
ごまこ

難しそうだけど頑張ってみます!

中央値は平均と並んでデータ群の真ん中を記述する重要な統計量の一つです。

また、平均と比較する形でデータの偏りや傾向を示すことができる大切な指標でもあると感じます。

この記事を参考に分析したいデータに合わせて、自由に中央値を求められるようになっていただければと思います。

中央値についてきちんと知りたい方は以下の記事を参考にしてみてください!

中央値を求める5つの方法

Pythonで中央値を求める場合、5つの方法があります。

  • 中央値の求め方通りにlen関数とsort関数を使用して求める方法
  • statistics.median関数を使用して求める方法
  • numpy.median関数を使用して求める方法
  • numpy.percentile関数を使用して求める方法
  • pandas.DataFrame.median関数を使用して求める方法

それぞれ順番に説明していきます。

中央値の求め方通りにlen関数とsort関数を使用して求める

中央値の求め方通りにPython標準の関数のみを使って計算します。

score = [48, 52, 46, 48, 53, 58, 52, 48, 51, 63, 48, 52, 43, 41, 51]

#データの数の半分の値を求める
half = len(score) // 2
#データを小さい順(昇順)に並べ替える
score.sort()

#データの数が偶数・奇数の場合でそれぞれ中央値を求める
if len(score) % 2==0:
    mdn = (score[half - 1] + score[half]) / 2.0
else:
    mdn = score[half]

print("中央値は", mdn, "です。")

#実行結果 : 中央値は 51 です。

statistics.median関数を使用して求める

statisticsモジュールをインポートし、statistics.median関数を使って求めます。

import statistics  #statisticsモジュールをインポート

score = [48, 52, 46, 48, 53, 58, 52, 48, 51, 63, 48, 52, 43, 41, 51]

#statistics.mean関数を用いる。
mdn = statistics.median(score)
print("中央値は", mdn, "です。")

#実行結果 : 中央値は 51 です

numpy.median関数を使用して求める

numpyモジュールをインポートし、numpy.median関数を使って求めます。

import numpy as np  #numpyモジュールをインポート

score = [48, 52, 46, 48, 53, 58, 52, 48, 51, 63, 48, 52, 43, 41, 51]

#numpy.median関数を用いる。
mdn = np.median(score)
print("中央値は", mdn, "です。")

#実行結果 : 中央値は 51 です。

numpy.percentile関数を使用して求める

numpyモジュールをインポートし、numpy.percentile関数を使って求めます。

numpy.percentile関数は配列からパーセンタイル値を求める関数で、データの中央値は 50%のパーセンタイル値です。

そのため、第二引数に50(%)を指定すればOKです。

import numpy as np  #numpyモジュールをインポート

score = [48, 52, 46, 48, 53, 58, 52, 48, 51, 63, 48, 52, 43, 41, 51]

#numpy.percentile関数を用いる。
mdn = np.percentile(score, 50)  #第二引数に50(%)を指定
print("中央値は", mdn, "です。")

#実行結果 : 中央値は 51 です

pandas.DataFrame.median関数を使用して求める

pandasモジュールをインポートし、pandasのデータ形式DataFrameのmedian関数を使って求めます。

import pandas as pd  #pandasモジュールをインポート

#Datafreme型のデータを準備
score = pd.DataFrame([48, 52, 46, 48, 53, 58, 52, 48, 51, 63, 48, 52, 43, 41, 51])

#pandas.median関数を用いる。
#score[n]で中央値を求めたい列を指定。
mdn = score[0].median()
print("中央値は", mdn, "です。")

#実行結果 : 中央値は 51 です。
ごまお
ごまお

いろんな求め方や使い方がありますね。

自分が中央値を求めたい元データによって使い分けることができるようになるのが良いですね。

最後のpandas.meadian()は表形式のデータで行や列ごとに中央値を求められるから、たくさんのデータを分析したいときには良く使いますよ!

ごまこ
ごまこ

きちんと実行できました!
中央値を計算するだけでもこんなにいろんな方法があるんですね!

まとめ

中央値を求める方法も用いるモジュールによって様々です。

また、冒頭でも触れたように中央値は平均と並んで「データ群の真ん中」を知る上で重要な統計量だと思います。

この記事を参考に、自身が用いるデータに合わせてモジュールを使い分けることができれば、様々な状況でも中央値を求めることができるようになっていくと感じます。

最後に中央値についてよくわからなくなった方は以下の記事で具体的な考え方を理解していただけると思います。

このサイトの記事一覧へは以下へアクセス!

統計検定 2級
統計学
ゴマフリーダムをフォローする

コメント

達人に学ぶDB設計 徹底指南書

最短コースでわかる ディープラーニングの数学

あたらしい機械学習の教科書 第3版

ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装

タイトルとURLをコピーしました