2016-04-06 115 views
1

我有一個如下的數據框(具體數據如下,這是通用的)。在沒有給我的累加值:Python - 熊貓 - 展開/刪除累積和

    no 
name day   
Jack Monday  10 
    Tuesday  40 
    Wednesday 90 
Jill Monday  40 
    Wednesday 150 

我想「展開」的累積和給我這樣的事情:

print df 
    name  day no 
0 Jack  Monday 10 
1 Jack Tuesday 30 
2 Jack Wednesday 50 
3 Jill  Monday 40 
4 Jill Wednesday 110 

從本質上說,我想這樣做的以下,但在相反的: Pandas groupby cumulative sum

+0

多少指標是這裏有 – EdChum

+0

我不知道發生了什麼變化,但我清理了我的文件並重新編寫了代碼,現在它工作了。爲了澄清問題,我刪除了任何錯誤。謝謝你的幫助。 – Afflatus

回答

4

IIUC你可以做到以下幾點:

In [103]: 
df.groupby(level=0).diff().fillna(df).reset_index() 

Out[103]: 
    name  day  no 
0 Jack  Monday 10.0 
1 Jack Tuesday 30.0 
2 Jack Wednesday 50.0 
3 Jill  Monday 40.0 
4 Jill Wednesday 110.0 

所以groupby第一指數水平,並呼籲diff計算每個組間差異行,並與原來的DF值填補NaN值並調用reset_index

+1

我認爲'abs'是錯誤的或者至少是多餘的。 –

+0

@AmiTavory是的我以爲我會得到負值,我會刪除它 – EdChum

+0

請編輯你的問題與示例數據和代碼,演示問題和所需的輸出 – EdChum