[英]Most efficient way to calculate the mean of a group of columns in a pandas DataFrame
[英]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.