1. はじめに
Pythonでデータの平均値を求めたいとき、手動で合計を計算して個数で割る方法もありますが、statistics.mean()
関数を使えば簡単かつ正確に求めることができます。
本記事では、「Python|平均値を求める:statistics.mean()」というテーマで、初心者〜中級者向けに丁寧な解説を行います。基本の使い方から応用、注意点まで具体的なコードとともに紹介します。
データ分析や簡単な集計処理にもよく使われる関数ですので、ぜひ習得しておきましょう。
2. statistics.mean()関数の基本解説
2-1. statistics.mean()とは?
statistics.mean()
は、Python標準ライブラリのstatistics
モジュールに含まれる関数で、リストやタプルの平均値(算術平均)を求めるために使います。
数学的には「全データの合計 ÷ 要素数」にあたりますが、この処理を1行で行える便利な関数です。
2-2. 基本的な使い方
以下のコードは、リスト内の数値の平均を求める基本的な例です。
import statistics
# 数値データのリスト
data = [10, 20, 30, 40, 50]
# 平均値を計算
average = statistics.mean(data)
# 結果を表示
print("平均値は:", average)
実行結果:
平均値は: 30
2-3. 小数も扱える
mean()
関数は、整数だけでなく小数を含むデータにも対応しています。
import statistics
data = [1.2, 3.4, 5.6, 7.8]
average = statistics.mean(data)
print("平均値は:", average)
実行結果:
平均値は: 4.5
3. よくある使い方・応用例
3-1. ユーザーからの入力データで平均値を求める
実務では、外部から与えられたデータ(たとえばセンサーデータやユーザー入力)に対して平均を求めるケースがよくあります。
import statistics
# カンマ区切りの数値入力
input_str = input("数値をカンマ区切りで入力してください: ")
# 文字列を数値のリストに変換
data = [float(x) for x in input_str.split(",")]
# 平均を計算
average = statistics.mean(data)
print("平均値は:", average)
実行結果:
数値をカンマ区切りで入力してください: 10,20,30
平均値は: 20.0
3-2. データの一部をフィルタして平均を求める
特定の条件に合致するデータだけを抽出し、平均を求めるパターンもよく使われます。
import statistics
data = [45, 60, 70, 85, 90]
# 60点以上のデータだけで平均を求める
passed_scores = [x for x in data if x >= 60]
average = statistics.mean(passed_scores)
print("合格者の平均点は:", average)
実行結果:
合格者の平均点は: 76.25
3-3. numpyとの違い
NumPyのnp.mean()
も似た機能を持っていますが、statistics.mean()
は標準ライブラリのためインストール不要という利点があります。
# NumPyを使った平均値の例
import numpy as np
data = [1, 2, 3, 4, 5]
average = np.mean(data)
print("平均値(NumPy):", average)
実行結果:
平均値(NumPy): 3.0
違いのポイント:
statistics.mean()
:標準ライブラリ。整数・小数どちらにも対応。軽量。np.mean()
:大規模データや多次元配列にも対応。高速で高機能。
4. 注意点・エラー対策
4-1. 空のリストはエラーになる
平均を計算するためには、1つ以上の要素が必要です。空のリストを渡すとStatisticsError
が発生します。
import statistics
data = []
# 空リストで平均を求めようとするとエラー
average = statistics.mean(data)
実行結果:
statistics.StatisticsError: mean requires at least one data point
対策: データが空でないか事前にチェックしてから計算しましょう。
if data:
average = statistics.mean(data)
print("平均値:", average)
else:
print("データが空です")
4-2. 数値以外の型が含まれているとエラー
リストに文字列などの数値以外が含まれるとTypeError
になります。
data = [10, 20, '30'] # '30' は文字列
average = statistics.mean(data) # エラー発生
実行結果:
TypeError: can't convert type 'str' to numerator/denominator
対策: リスト内の要素はすべてint
またはfloat
型であることを確認しましょう。
5. まとめ
今回はPythonのstatistics.mean()
を使って平均値を求める方法について詳しく解説しました。
statistics.mean()
は標準ライブラリで簡単に使える- 小数にも対応し、直感的に書ける
- 空のリストや文字列混入には注意が必要
データ分析や業務での集計、成績計算など多くの場面で役立ちます。Pythonでの数値処理の第一歩として、しっかり使いこなしておきましょう。
実務のヒント: Webアプリや業務ツールの中で、データの傾向を簡単に把握したいときにmean()
を使うと、すぐに有益な指標を得ることができます。