首页 > 解决方案 > 为 % 创建 Groupby 总计行

问题描述

我有一个 DataFrame,我在其中根据 DataFrame 中的两列计算完整的百分比,按“NAME”分组。

我想添加一个总计列,但不知道从哪里开始。

数据框:

    Name  Attempts Completes
0    A       6        5
1    B       5        4
2    B       2        2
3    A       9        7

我用来计算百分比的代码:

df.groupby('Name')['Completes'].sum() / df.groupby('Name')['Attempts'].sum()

结果:

Name
A    0.800000
B    0.857143
dtype: float64

结果我追求:

Name
A       0.800000
B       0.857143
Grand Total 0.818181
dtype: float64

提前感谢您的任何建议。

标签: pythonpython-3.xpandas

解决方案


只需要重新分配它

s=df.groupby('Name')['Completes'].sum() / df.groupby('Name')['Attempts'].sum()
s.loc['Grand Total']=df['Completes'].sum()/df['Attempts'].sum()
s
Out[312]: 
Name
A              0.800000
B              0.857143
Grand Total    0.818182
dtype: float64

推荐阅读