繁体   English   中英

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

[英]Group pandas dataframe and calculate mean for multiple columns

我正在尝试按列对熊猫数据框进行分组,然后还计算多列的平均值。 在下面的示例中,我想按“类别”列分组,然后计算“分数”和“优先级”列的平均值。 所有三列都应该在结果数据框中。

我能够对第一列进行分组和计算平均值,但我不知道如何添加第二列。 在我的尝试之下。

非常感谢任何指导。

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)计算所有数字列的平均值。 (您现在可以忽略它,但您会收到一条已弃用的功能消息。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM