Pandas сгруппировать несколько столбцов вместе - PullRequest
0 голосов
/ 13 марта 2020

У меня есть набор данных о преступности в Лондоне, который мне нужно проанализировать. Приведенный ниже фрейм данных представляет собой фрагмент того, как выглядит фрейм данных. Я пытаюсь найти сумму всех преступлений в каждом округе за 4 разных месяца 2018 года.

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   |    

Желаемый результат будет:

Westminster: 461
Bexley: 531

Я знаю, что Pandas Группа за функцией может делать то, что я пытаюсь достичь, но я не уверен, как правильно использовать это в этом случае, находя сумму из нескольких столбцов. У меня есть группировка по районам и нахождение суммы в каждом из столбцов за 4 месяца, но я бы sh нашел сумму по всем 4 столбцам, а не по отдельности.

Это код, который я использовал для достижения вышеупомянутого.

df.groupby(['District'])[["201803", "201804", "201805", "201806"]].sum()

1 Ответ

1 голос
/ 13 марта 2020

Решение (аналогично комментариям) будет:

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