热线电话:13121318867

登录
2019-02-25 阅读量: 820
试图在pandas中使用聚合求和函数

我有一个数据框,我正在尝试按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'})

0.0000
1
关注作者
收藏
评论(0)

发表评论

暂无数据
推荐帖子