熊猫groupby将多个列加在一起

时间:2020-03-12 22:00:34

标签: python pandas pandas-groupby

我有一个需要分析的伦敦犯罪数据集。下面的数据框是该数据框的摘要。我正在尝试查找2018年的4个不同月份中每个地区内所有犯罪的总和。

sleekxmpp

所需的输出将是:

Crime_type                | Crime sub_type   | District   | 201803 | 201804 | 201805 | 201806 |
----------------------------------------------------------------------------------------------
Arson and Criminal Damage |      Arson      | Westminster |   45   |   90   |    54  |   36   |
Arson and Criminal Damage | Criminal Damage | Westminster |   64   |   35   |    74  |   63   |
Arson and Criminal Damage |      Arson      |   Bexley    |   54   |   19   |    23  |   98   |
Arson and Criminal Damage | Criminal Damage |   Bexley    |   98   |   63   |    89  |   87   |    

我知道Pandas按功能分组可以完成我想达到的目的,但是我不确定如何在这种情况下正确使用它,找到多个列的总和。我将其按地区分组,并在4个月的每一列中找到总和,但我希望在所有4列中找到总和,而不是单独找到。

这是我用来实现上述目标的代码。

Westminster: 461
Bexley: 531

1 个答案:

答案 0 :(得分:1)

一种解决方案(类似于评论)将是:

year_months_cols = ["201803", "201804", "201805", "201806"]
df["sum_months"] = df[year_months_cols].sum(axis=1)
df.groupby("District")["sum_months"].agg("sum")