0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

[Python] 中央値を求める

Last updated at Posted at 2024-10-03

中央値とは

中央値とはデータを小さい順に並べたデータのちょうど中央にあるデータのことですが、データが偶数個の場合にはちょうど中央にくる値がないので、中央に最も近い2つの値の平均値を中央値とします。今回はPythonで中央値を求めてみます。

中央値を求める その1

組み込み関数のlen()関数とsort()関数を使用して中央値を求めます。

median1.py
score = [48,52,46,48,53,58,52,48,51,63]

# データの数の半分を求める
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.5 です。

中央値を求める その2

標準ライブラリstatisticsのmedian()関数を使用して中央値を求めます。その1と違ってデータをソートする必要がないので楽ですね。ちなみに今回の例のようにデータが偶数個の場合にmedian_low()関数を使うと、中央2個の値の小さい方の値、median_high()関数を使うと中央2個の値の大きい方の値を返します。

median2.py
import statistics

score = [48,52,46,48,53,58,52,48,51,63]
mdn = statistics.median(score)
print("中央値は", mdn, "です。")
# 出力結果
# 中央値は 51.5 です。

中央値を求める その3

数値計算ライブラリのNumPyにあるmedian()関数を使用して中央値を求めます。

median3.py
import numpy as np

score = score = [48,52,46,48,53,58,52,48,51,63]
mdn = np.median(score)
print("中央値は", mdn, "です。")
# 出力結果
# 中央値は 51.5 です。

中央値を求める その4

今度はNumPyのpercentile()関数を使用して中央値を求めてみます。データの数が偶数個なのでpercentile()の第二引数に50パーセンタイルを指定しています。

median4.py
import numpy as np

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

# 第二引数に50パーセンタイルを指定
mdn = np.percentile(score, 50)
print("中央値は", mdn, "です。")
# 出力結果
# 中央値は 51.5 です。

中央値を求める その5

データ解析ライブラリのPanadasにあるDataFrame.median()関数を使用して中央値を求めます。ただしPandasはこの例のような少ないデータを処理するために使うものではないですが、中央値を求めるには色々なやり方があるよということで例に挙げます。

median5.py
import pandas as pd

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

# score[n]で中央値を求めたい列を指定
mdn = score[0].median()

print("中央値は", mdn, "です。")
# 出力結果
# 中央値は 51.5 です。
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?