分组 pandas 数据框并计算多列的平均值

Group pandas dataframe and calculate mean for multiple columns

我正在尝试按列对 pandas 数据框进行分组,然后计算多列的平均值。 在下面的示例中,我想按 'category' 列分组,然后计算 'score' 和 'priority' 列的平均值。所有三列都应该在结果数据框中。

我可以对第一列进行分组并计算平均值,但我不知道如何添加第二列。低于我的尝试。

非常感谢任何指导。

import pandas as pd

data = [['A', 2, 1], ['A', 4, 2], ['B', 5, 3], ['B', 2, 3]]
df = pd.DataFrame(data, columns=['category', 'score', 'priority'])
print(df)

#  This fails:
results_df = df.groupby('category')['score'].agg(['mean',])['priority'].agg(['mean',])
print(results_df)
df.groupby("category", as_index=False).mean()

你的前三行正确打印出结果

  category  score  priority
0        A      2         1
1        A      4         2
2        B      5         3
3        B      2         3

现在添加这一行:

df.groupby("category").mean(numeric_only=True)

你会看到:

          score  priority
category                 
A           3.0       1.5
B           3.5       3.0

这可能就是您要找的。 DataFrame 上的 运行 mean(numeric_only=True) 计算所有数字列的均值。 (您现在可以将其省略,但您会收到 deprecated-feature 消息。)