我有一个数据框,我正在尝试按TERRORIST和DATE对其进行分组,然后在剩下的2个列中运行总和函数FATALITIES&INJURED。问题是,当我运行代码时,它不会添加数字,它只是连接它们。
例如,这是我的代码:
df_3 = df_2.groupby(by=['TERRORIST','DATE']).agg({'FATALITIES': 'sum',
'INJURED': 'sum'})
它返回一个数字列表,如1441133111111111222142
我相信这种情况正在发生,因为它将我的死亡和受伤列中的数据视为字符串而不是整数。但是当我做以下事情时
def clean_2(row):
fatalities = row['FATALITIES']
injured = row['INJURED']
fatalities = pd.to_numeric(df_2['FATALITIES'])
injured = pd.to_numeric(df_2['INJURED'])
return pd.Series([fatalities, injured])
df_2[['FATALITIES', 'INJURED']] = df_2.apply(clean_2, axis=1)
df_3 = df_2.groupby(by=['TERRORIST','DATE']).agg({'FATALITIES': 'sum',
解决办法:应该将列转换为数字,而不是元素:
df_2['FATALITIES'] = pd.to_numeric(df_2['FATALITIES'])
df_2['INJURED'] = pd.to_numeric(df_2['INJURED'])
df_3 = df_2.groupby(by=['TERRORIST','DATE']).agg({'FATALITIES': 'sum', 'INJURED':
'INJURED': 'sum'})








暂无数据