【问题标题】:Calculating running total计算运行总计
【发布时间】:2017-10-04 09:35:59
【问题描述】:

我有数据框 df,我想保留该数据框列中出现的名称的运行总数。我正在尝试计算运行总列:

    name    running total
    a            1
    a            2 
    b            1 
    a            3
    c            1
    b            2

我认为有两种方法可以做到这一点:

  1. 遍历数据框并使用包含名称和当前计数的单独字典。每次执行循环时,相关名称的当前计数都会增加 1,并且该值将被复制到我的数据框中。

  2. 更改数据框中每个值的字段计数。在 excel 中,我将使用 countif 结合下拉公式 A$1:A1 来修复第一个值,但使第二个值相对,以便我正在查看的范围随行而变化。

问题是我不确定如何实现这些。有没有人对哪个更好以及如何实施有任何想法?

【问题讨论】:

  • 如果您使用的是 pandas,请查看 cumcount 函数

标签: python loops pandas count cumulative-sum


【解决方案1】:

@bunji 是对的。我假设您使用的是 pandas,并且您的数据位于名为 df 的数据框中。要将运行总计添加到您的数据框中,您可以执行以下操作:

df['running total'] = df.groupby(['name']).cumcount() + 1

+ 1 第一次出现时为您提供 1,而不是 0,否则您会得到。

【讨论】:

  • 如此简单!谢谢
猜你喜欢
  • 2023-03-23
  • 2012-07-03
  • 1970-01-01
  • 2020-06-30
  • 2014-06-14
  • 2021-10-23
  • 2010-10-14
  • 1970-01-01
相关资源
最近更新 更多