Pandas DataFrame の列の平均を取得する方法
    
    
            Ahmed Waheed
    2023年1月30日
    
    Pandas
    
 
大きなデータセットを扱う場合、列の平均または平均をとらなければならないことがあります。たとえば、学生の成績リストがあり、成績の平均やその他の列を知りたいとします。このタスクを達成するためのさまざまな方法を以下に示します。
次のセクションでは、次のように同じ DataFrame を使用します。
import pandas as pd
data = {
    "name": ["Oliver", "Harry", "George", "Noah"],
    "percentage": [90, 99, 50, 65],
    "grade": [88, 76, 95, 79],
}
df = pd.DataFrame(data)
以下は DataFrame の例です。
     name  percentage  grade
0  Oliver          90     88
1   Harry          99     76
2  George          50     95
3    Noah          65     79
Pandas DataFrame 列の平均を計算する df.mean() メソッド
データセットにある成績の平均列を見てみましょう。
import pandas as pd
data = {
    "name": ["Oliver", "Harry", "George", "Noah"],
    "percentage": [90, 99, 50, 65],
    "grade": [88, 76, 95, 79],
}
df = pd.DataFrame(data)
mean_df = df["grade"].mean()
print(mean_df)
以下が出力されます。
84.5
別の例を見て、DataFrame 全体に df.mean() 関数を適用してみましょう。
import pandas as pd
data = {
    "name": ["Oliver", "Harry", "George", "Noah"],
    "percentage": [90, 99, 50, 65],
    "grade": [88, 76, 95, 79],
}
df = pd.DataFrame(data)
mean_df = df.mean()
print(mean_df)
上記の例では、mean() メソッドで列名を指定していません。mean() メソッドは、どの列が mean() 関数の適用に適格であるかを自動的に決定します。
以下が出力されます。
percentage    76.0
grade         84.5
dtype: float64
df.describe() メソッド
このメソッドは、データセットの完全な統計の出力を作成します。使い方を見てみましょう。
import pandas as pd
data = {
    "name": ["Oliver", "Harry", "George", "Noah"],
    "percentage": [90, 99, 50, 65],
    "grade": [88, 76, 95, 79],
}
df = pd.DataFrame(data)
print(df.describe())
出力:
       percentage      grade
count    4.000000   4.000000
mean    76.000000  84.500000
std     22.524061   8.660254
min     50.000000  76.000000
25%     61.250000  78.250000
50%     77.500000  83.500000
75%     92.250000  89.750000
max     99.000000  95.000000
df.describle() メソッドの結果は DataFrame であるため、列名と行名を参照することで、percentage と grade の平均を取得できます。
df.describe()["grade"]["mean"]
df.describe()["percentage"]["mean"]
df.describe() は特定の列に対しても機能します。この関数を grade 列に適用してみましょう。
import pandas as pd
data = {
    "name": ["Oliver", "Harry", "George", "Noah"],
    "percentage": [90, 99, 50, 65],
    "grade": [88, 76, 95, 79],
}
df = pd.DataFrame(data)
print(df["grade"].describe())
以下が出力されます。
count     4.000000
mean     84.500000
std       8.660254
min      76.000000
25%      78.250000
50%      83.500000
75%      89.750000
max      95.000000
Name: grade, dtype: float64
列が指定されている場合、結果は Series になります。平均値を直接参照することで平均値を取得できます。
df["grade"].describe()["mean"]
        チュートリアルを楽しんでいますか? <a href="https://www.youtube.com/@delftstack/?sub_confirmation=1" style="color: #a94442; font-weight: bold; text-decoration: underline;">DelftStackをチャンネル登録</a> して、高品質な動画ガイドをさらに制作するためのサポートをお願いします。 Subscribe