为%创建一个Groupby总计行

时间:2019-07-09 01:50:27

标签: python python-3.x pandas

我有一个DataFrame,其中我根据该DataFrame中的两列(按“ NAME”分组)来计算完整%。

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

DataFrame:

    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

预先感谢您的任何建议。

2 个答案:

答案 0 :(得分:2)

只需将其分配回

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

答案 1 :(得分:2)

您还可以使用pivot_table(具有总计选项)对其进行分组。

enter image description here