汇总Pandas中特定列上具有相同值的行

时间:2020-03-07 14:01:27

标签: python pandas dataframe pandas-groupby

对于一个大学项目,我使用Johns Hopkins冠状病毒COVID-19数据集:https://github.com/CSSEGISandData/COVID-19。我正在尝试使数据集更简单。现在是我的数据集:

        Country         Date        Confirmed   Deaths  Recovered
2600    Mainland China  2020-02-28  410.0       7.0     257.0
2601    Iran            2020-02-28  388.0       34.0    73.0
2602    Mainland China  2020-02-28  337.0       3.0     279.0
2603    Mainland China  2020-02-28  318.0       6.0     277.0
2604    Mainland China  2020-02-28  296.0       1.0     235.0
...     ...             ...         ...         ...     ...
2695    US              2020-02-25  1.0         0.0     1.0
2696    US              2020-02-24  0.0         0.0     0.0
2697    US              2020-02-24  0.0         0.0     0.0
2698    US              2020-02-24  0.0         0.0     0.0
2699    Mainland China  2020-02-29  66337.0     2727.0  28993.0

如果“国家”和“日期”列中的值相同,我想汇总所有“确认”,“死亡”和“恢复”值。

例如,在第2600、2602、2603、2604行中,Country和Date列中的值匹配,因此我想合并这些行并分别汇总Confirmed,Deaths和Recovered列。该行应显示以下行:

 2600    Mainland China  2020-02-28  1361.0       17.0     1048.0

到目前为止我所拥有的:

duplicateRowsDF = df[df.duplicated(['Country', 'Date'])]
duplicateRowsDF

希望有人可以帮助我,最好是但不限于熊猫。预先感谢。

1 个答案:

答案 0 :(得分:2)

使用groupby怎么样?如果您这样做:

df.groupby(by=['Country', 'Date']).sum() 

您所有具有相同国家和日期的行将被分组为仅一列,每一列中所有值的总和。