PythonのPandas の mean
関数 について、基礎から応用まで詳しく解説します。
目次
基本的な役割
mean
は Pandas の統計関数の一つで、平均値(算術平均)を計算するために使います。
対象はSeries(1次元データ)やDataFrame(2次元データ)で、数値型データに対して動作します。
使用例(Seriesの場合)
import pandas as pd
# Seriesデータ
s = pd.Series([10, 20, 30, 40, 50])
# 平均値を計算
print(s.mean()) # 30.0
シンプルにリストの平均と同じ動作をします。
DataFrameでの使い方
DataFrame では、行・列どちらの方向に平均をとるかを指定できます。
df = pd.DataFrame({
"A": [1, 2, 3],
"B": [4, 5, 6],
"C": [7, 8, 9]
})
# 各列の平均(デフォルト: axis=0)
print(df.mean())
# A 2.0
# B 5.0
# C 8.0
# 各行の平均
print(df.mean(axis=1))
# 0 4.0
# 1 5.0
# 2 6.0
主要な引数
DataFrame.mean(axis=0, skipna=True, numeric_only=None, ...)
axis
0
(デフォルト):列ごとの平均1
:行ごとの平均
skipna
True
(デフォルト):NaN を無視して計算False
:NaN が含まれると結果も NaN になる
numeric_only
True
:数値型の列だけ対象False
またはNone
:デフォルトはバージョンによって挙動が異なる(将来的には数値列のみが対象になる方向)
NaNを含む場合の挙動
s = pd.Series([1, 2, None, 4])
print(s.mean()) # 2.333... (NaNを無視)
print(s.mean(skipna=False)) # NaN
skipna=True
がデフォルトなので、欠損値を無視して計算してくれます。
応用例
特定の列だけ平均をとる
df[["A", "B"]].mean()
条件付きで平均を計算
df.loc[df["A"] > 1, "B"].mean() # A > 1 の行に絞って B列の平均
グループごとの平均
df = pd.DataFrame({
"category": ["x", "x", "y", "y"],
"value": [10, 20, 30, 40]
})
print(df.groupby("category")["value"].mean())
# category
# x 15.0
# y 35.0
よくある注意点
- 文字列列は無視される(
numeric_only
の挙動に注意) - NaNの扱いで結果が変わる → 分析時は
skipna
の意図を明確にする - 重み付き平均は計算できない →
mean()
は単純平均のみ。加重平均をとりたい場合はnp.average
を使う。
まとめ
mean()
は Pandas で平均値を求める基本関数- DataFrameでは 列方向(axis=0) がデフォルト
- 欠損値は skipna=True で無視される
- グループごとに集計する場合は
groupby
と組み合わせるのが便利
以上、PythonのPandasのmean関数についてでした。
最後までお読みいただき、ありがとうございました。