Python|平均値を求める:statistics.mean()

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()を使うと、すぐに有益な指標を得ることができます。

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