1. はじめに
Pythonを使ってデータの中央値(メディアン)を求めたいとき、標準ライブラリのstatistics
モジュールにある
median()関数が便利です。
本記事では、「Python|中央値を求める:statistics.median()」というテーマで、中央値の基本的な考え方から、
Pythonでの実装例、実務での使い方、注意点までを初心者にもわかりやすく解説します。
この記事で学べること:
- 中央値(メディアン)とは何か?
statistics.median()
の使い方と注意点- 実務での活用シーンと応用例
これからPythonを使ってデータ分析や統計処理を学ぼうとしている方は、ぜひ最後までご覧ください。
2. Pythonで中央値を求める:statistics.median() の基本
statistics.median() とは?
statistics.median()
は、Pythonの標準ライブラリstatistics
に含まれる関数で、数値のリストから
中央値を返してくれます。
中央値とは、データを昇順に並べたときの「中央の値」です。データの個数が奇数の場合は真ん中の値を、
偶数の場合は中央の2つの値の平均を取ります。
基本的な使い方
import statistics
data1 = [1, 3, 5, 7, 9]
data2 = [10, 20, 30, 40]
# 奇数個のリスト
median1 = statistics.median(data1)
# 偶数個のリスト
median2 = statistics.median(data2)
print("中央値1:", median1)
print("中央値2:", median2)
実行結果:
中央値1: 5
中央値2: 25.0
ポイント解説
- 奇数個:真ん中の値(例:5)
- 偶数個:中央2つの値(20, 30)の平均 → 25.0
3. よくある使い方・応用例
1. データ分析での利用
中央値は、外れ値に強く影響されないため、データ分析では平均値よりも信頼できる指標になることがあります。
import statistics
# 年収のデータ(外れ値あり)
incomes = [300, 320, 310, 295, 1000]
average = sum(incomes) / len(incomes)
median_income = statistics.median(incomes)
print("平均年収:", average)
print("中央値年収:", median_income)
実行結果:
平均年収: 445.0
中央値年収: 310
2. 複雑なデータ構造と組み合わせる
リスト内包表記と組み合わせると、辞書リストから中央値を抽出することもできます。
import statistics
students = [
{"name": "A", "score": 72},
{"name": "B", "score": 88},
{"name": "C", "score": 91},
{"name": "D", "score": 65},
{"name": "E", "score": 85}
]
# スコアだけを抽出して中央値を求める
scores = [student["score"] for student in students]
median_score = statistics.median(scores)
print("スコアの中央値:", median_score)
実行結果:
スコアの中央値: 85
4. 注意点・エラー対策
1. 空のリストはエラーになる
statistics.median()
に空のリストを渡すとStatisticsError
が発生します。
import statistics
data = []
try:
print(statistics.median(data))
except statistics.StatisticsError as e:
print("エラー:", e)
実行結果:
エラー: no median for empty data
2. 数値以外を含むとエラー
文字列や混在型のデータはエラーになります。あらかじめint()
やfloat()
で変換しましょう。
import statistics
data = [10, 20, '30']
try:
print(statistics.median(data))
except TypeError as e:
print("エラー:", e)
実行結果:
エラー: can't convert type 'str' to numerator/denominator
5. まとめ
この記事では、Pythonのstatistics.median()
関数を使って中央値を求める方法について詳しく解説しました。
振り返りポイント:
- 中央値は外れ値に影響されにくく、実務でも重要な統計指標
statistics.median()
は、奇数・偶数どちらのリストにも対応- 空のリストや数値以外を含むとエラーになるため注意
実務での活用シーン:
アンケート集計、ユーザーの滞在時間分析、社員の年齢中央値の把握など、平均ではなく「真ん中の傾向」が重要な場面に最適です。
学習のコツ:
mean()
(平均)とmedian()
(中央値)をセットで比較しながら使ってみると理解が深まります!
必要に応じて、median_low()
やmedian_high()
など、中央値のバリエーション関数にも触れてみると、より実務に強い知識が身につきます。興味があれば次の記事もチェックしてみてください。