2017-05-05 146 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