[英]How to use this pivot table in Pandas to aggregate data by Country only?
我在 2014-2016 年埃博拉病毒爆發時使用了這個 Kaggle 數據集。
https://www.kaggle.com/imdevskp/ebola-outbreak-20142016-complete-dataset
我想知道如何將 pivot 表與 Pandas 一起使用,並查看每個國家/地區的未確診病例總數(疑似和可能)。 我不知道如何進步,我在索引上有國家和日期。 如果我在索引中只使用 Country,事情就會變得一團糟。
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
我應該如何更改 pivot 表,以便我只能看到每個國家/地區的可能病例和疑似病例的總價值? 我想有效地忽略日期。
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
如果要忽略日期,請從pd.pivot_table
的索引參數中省略“日期”
另外,我認為您不需要 pivot 表。 您只需要按國家/地區分組,然后在 .agg 方法中指定要求和的列。
df.groupby('Country').agg({'COL1': 'sum', 'COL2': 'sum'})
改變:
index=['Country', 'Date']
至:
index='Country'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.