如何获取 Pandas DataFrame 的列的平均值
Ahmed Waheed
2023年1月30日
当我们处理大型数据集时,有时我们必须取列的平均值或均值。例如,你有一个学生的成绩列表,并且想知道平均成绩或其他一些列。下面列出了完成此任务的不同方法。
在以下各节中,我们将使用相同的 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"]