2017-05-05 145 views
0

我有数据帧df,我想保留一个数据帧的列中出现的名称的总数。我试图计算运行总计列:计算运行总数

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

有两种方法,我认为要做到这一点:

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

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

问题是我不知道如何实现这些。有没有人有任何想法是可取的,以及如何实施这些想法?

+1

如果你使用的大熊猫检查出['cumcount'(http://pandas.pydata.org/pandas-docs/stable/generated/pandas.core.groupby.GroupBy.cumcount.html)功能 – bunji

回答

1

@bunji是对的。我假设你使用熊猫,并且你的数据在一个名为df的数据框中。到正在运行的总计添加到您的数据框,你可以做这样的事情:

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

+ 1为您提供了1你的第一次出现,而不是0,这是你会得到什么,否则。

+0

很简单!谢谢 – OllieP