Как использовать эту сводную таблицу в Pandas для агрегирования данных только по странам? - PullRequest
0 голосов
/ 05 апреля 2020

Я использую этот набор данных Kaggle при вспышке Эболы в 2014-2016 гг.

https://www.kaggle.com/imdevskp/ebola-outbreak-20142016-complete-dataset

Я хочу знать, как использовать сводную таблицу с Pandas, и просмотреть общее количество неподтвержденных (подозреваемых и вероятных) случаев в каждой стране. Я не уверен, как прогрессировать, у меня есть и страна и дата в индексе. Если в индексе я использую только страну, все будет запутано.

Country Date    Suspected Cases Probable Cases  Confirmed Cases Suspected Deaths    Probable Deaths Confirmed Deaths
0   Guinea  2014-08-29  25.0    141.0   482.0   2.0 141.0   287.0
1   Nigeria 2014-08-29  3.0 1.0 15.0    0.0 1.0 6.0
2   Sierra Leone    2014-08-29  54.0    37.0    935.0   8.0 34.0    380.0
3   Liberia 2014-08-29  382.0   674.0   322.0   168.0   301.0   225.0
4   Sierra Leone    2014-09-05  78.0    37.0    1146.0  11.0    37.0    443.0
... ... ... ... ... ... ... ... ...
2480    Liberia 2016-03-23  5636.0  1879.0  3151.0  NaN NaN NaN
2481    Italy   2016-03-23  0.0 0.0 1.0 NaN NaN NaN
2482    Liberia 2016-03-23  0.0 3.0 2.0 NaN 3.0 1.0
2483    Nigeria 2016-03-23  0.0 1.0 19.0    0.0 1.0 7.0
2484    United States of America    2016-03-23  0.0 0.0 4.0 0.0 0.0 1.0
2485 rows × 8 columns

Как мне изменить сводную таблицу, чтобы в каждой стране я видел только одно общее значение как для Вероятных, так и Предполагаемых случаев? Я хочу эффективно игнорировать даты.

table = pd.pivot_table(df, index=['Country', 'Date'], columns=None, values=['Probable Cases', 'Suspected Cases'], aggfunc={
    'Suspected Cases' : 'sum',
    'Probable Cases' : 'sum'
})
    Probable Cases  Suspected Cases
Country Date        
Guinea  2014-08-29  141.0   25.0
2014-09-05  152.0   56.0
2014-09-08  151.0   47.0
2014-09-12  151.0   32.0
2014-09-16  162.0   31.0
... ... ... ...
United States of America    2015-12-17  0.0 0.0
2015-12-22  0.0 0.0
2015-12-23  0.0 0.0
2015-12-29  0.0 0.0
2016-03-23  0.0 0.0
2379 rows × 2 columns

Ответы [ 2 ]

0 голосов
/ 05 апреля 2020

Изменение:

index=['Country', 'Date']

на:

index='Country'
0 голосов
/ 05 апреля 2020

Если вы хотите игнорировать даты, то опустите 'Date' в параметре индекса pd.pivot_table

Кроме того, я не думаю, что вам нужна сводная таблица. Вам просто нужно сгруппировать страну, а затем указать столбцы, которые вы хотите суммировать, в методе .agg.

df.groupby('Country').agg({'COL1': 'sum', 'COL2': 'sum'})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...