如何獲取 Pandas DataFrame 的列的平均值
Ahmed Waheed
2023年1月30日
2020年6月9日
當我們處理大型資料集時,有時我們必須取列的平均值或均值。例如,你有一個學生的成績列表,並且想知道平均成績或其他一些列。下面列出了完成此任務的不同方法。
在以下各節中,我們將使用相同的 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
df.mean()
方法來計算 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)
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()
也可以用於特定的列。讓我們將此函式應用於等級列。
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
。我們可以直接參考 mean
來獲得平均值。
df['grade'].describe()['mean']