【发布时间】:2018-12-14 05:59:18
【问题描述】:
我觉得我正在尝试做的是非常基本的,但我似乎无法在这里找到类似的帖子。如果我的帖子确实是重复的,请告诉我。
我掌握的数据是关于交通事故的。前两列显示事件的确切死亡和受伤人数,但第 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
我想要的是对前两列进行分组求和,然后当 ALCOHOL 或 CELLPHONE 列单元格值为 1 时,计算每个城市的 FATAL 总和。
所以基本上我想要的输出是:
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(),但我会丢失总数列。
我该怎么做呢?
谢谢。
【问题讨论】:
标签: python pandas dataframe group-by pandas-groupby