Я чувствую, что то, что я пытаюсь сделать, довольно просто, но я не могу найти похожий пост здесь.Пожалуйста, дайте мне знать, если мой пост действительно повторяется.
У меня есть данные об инцидентах, связанных с авариями на транспорте.Первые два столбца показывают точное число погибших и травм в результате инцидента, но 3-й и 4-й столбцы (связанные с алкоголем и мобильными телефонами) показывают только двоичные значения: 0 (означает, что нет связи) и 1 (означает, что связано).
Пример данных приведен ниже:
(Извините, данные не полностью совпадают с заголовком столбца, я никогда не знал, как правильно их отформатировать. Буду признателен, если кто-нибудь сможет поделиться любымсоветы.)
NAME FATAL# INJURY# ALCOHOL CELL
0 City A 5 1 0 0
1 City B 5 1 0 1
2 City A 3 1 1 0
3 City B 3 1 1 0
4 City A 3 0 1 0
5 City B 2 2 0 0
Мне нужно сделать сумму по группам для первых двух столбцов, а затем вычислить сумму FATAL
для каждого города, когда ячейка столбца ALCOHOL
или CELLPHONE
значение равно 1.
Таким образом, в основном мой желаемый вывод:
NAME FATAL# INJURY # ALCOHOL FATALCELL FATAL
0 City A 11 2 6 0
1 City B 10 4 3 5
Извините за плохое форматирование, изображения вышеупомянутых фреймов данных, если это помогает понять:
ЧтоУ меня есть
Что я хочу
Я знаю дляпервые два столбца я сделаю df.groupby(['NAME']).['FATAL', 'INJURIES'].sum()
.А что касается второй части, я могу сделать df1.groupby(['NAME','ALCOHOL_RELATED'])['FATAL_COUNT', 'INJURY_COUNT'].sum()
, но тогда я потеряю столбцы общего количества.
Как мне это сделать?
Спасибо.