考虑
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 教程之后,我仍然不确定如何实现它;因此,我更喜欢不同的方法(如果可能的话!)有人可以帮助我吗?
最佳答案
试试这个:
df.groupby('ID')['EXPENDITURE'].sum()
获取每个ID的支出金额。它仍然很快,因为 Pandas 是基于 numpy 构建的。
关于python - 不使用 for 循环追加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43958146/