Создание строки итогов по группам для% - PullRequest
4 голосов
/ 09 июля 2019

У меня есть 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 ]

2 голосов
/ 09 июля 2019

Вы также можете сгруппировать его, используя pivot_table, у которого есть опция общего итога.

enter image description here

2 голосов
/ 09 июля 2019

Просто нужно вернуть его обратно

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...