PythonのPandasのmean関数について

グラフ,イメージ

AI実装検定のご案内

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関数についてでした。

最後までお読みいただき、ありがとうございました。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次