Python|中央値を求める:statistics.median()

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()など、中央値のバリエーション関数にも触れてみると、より実務に強い知識が身につきます。興味があれば次の記事もチェックしてみてください。

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