【问题标题】:Append without for loop不使用 for 循环追加
【发布时间】:2017-10-12 23:29:12
【问题描述】:

考虑

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()

标签: python loops pandas


【解决方案1】:

试试这个:

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

获取每个 ID 的支出总和。它仍然很快,因为 Pandas 是基于 numpy 构建的。

【讨论】:

    猜你喜欢
    • 2019-10-24
    • 2018-03-10
    • 2018-10-04
    • 1970-01-01
    • 1970-01-01
    • 2013-08-08
    • 2021-11-29
    • 2013-03-09
    • 2019-03-09
    相关资源
    最近更新 更多