我有一个数据集,我正在尝试通过userID进行汇总。我需要计算每个用户的订单总和。
ID ORDER
abc 1
bcd 1
ced 1
dfd 1
bcd 1
ced 1
bcd 1
bcd 1
这是数据集
这是我使用的代码
TotalOrders=PL_training.groupby('ID').GR_ORDERS.sum().reset_index()
TotalOrders.columns=['ID','TotalOrders']
与其将代码相加,不如将代码累加到一行。我知道求和函数加起来,但不确定为什么不起作用。出乎意料的是,我使用相同的代码将其他列加起来,并且运行良好。
结果是
abc 1
bcd 1111
ced 11
dfd 1
预期结果
abc 1
bcd 4
ced 2
dfd 1
请帮助我了解问题所在。谢谢
答案 0 :(得分:2)
使用Series.astype
隐瞒int
在分组和和之前:
new_df=df.copy()
new_df['ORDER']=new_df['ORDER'].astype(int)
new_df.groupby('ID')['ORDER'].sum()
或
df.groupby('ID')['ORDER'].apply(lambda x: x.astype(int).sum())
ID
abc 1
bcd 4
ced 2
dfd 1
Name: ORDER, dtype: int64