无需循环追加

时间:2017-05-13 21:28:00

标签: python loops pandas

考虑

ID  EXPENDITURE
1   100 
1   101   
1   88   
2   28   
2   77 

我希望按ID计算总支出,即:

 ID TOTAL_EXPENDITURE
 1  289
 2  105

我目前的代码如下:

list = []
for i in df.ID.unique()
    CSPEC = df.loc[df['ID'] == i]
    TOTAL_EXP = CSPEC['EXPENDITURE'].sum()
    list.append(TOTAL_EXP)

这确实会给我答案。但是,我面临117705个唯一ID,这个for循环需要很长时间。

我读过关于numpy的内容,但是在关注了YouTube教程后,我仍然不确定如何实现它;因此,我更喜欢不同的方法(如果可能的话!)任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:1)

试试这个:

df.groupby('ID')['EXPENDITURE'].sum()

获取每个ID的支出总和。它仍然很快,因为Pandas建立在numpy上。