分组 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 消息。)
我正在尝试按列对 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 消息。)