2017-04-25 91 views
1

我有下面幾列一個數據幀:大熊貓:cumsum忽略前兩行

|---------------------| 
|   A   | 
|---------------------| 
|   0   | 
|---------------------| 
|   2.63  | 
|---------------------| 
|   7.10  | 
|---------------------| 
|   5.70  | 
|---------------------| 
|   6.96  | 
|---------------------| 
|   7.58  | 
|---------------------| 
|   3.3   | 
|---------------------| 
|   1.93  | 
|---------------------| 

我需要得到的累計總和,但有一點是種特別的。第一個元素應該是0,以下是累積和從以前的列開始,所以在這種情況下,我需要製作:

|---------------------| 
|   B   | 
|---------------------| 
|   0   | 
|---------------------| 
|   0   | 
|---------------------| 
|   2.63  | 
|---------------------| 
|   9.73  | 
|---------------------| 
|  15.43  | 
|---------------------| 
|  22.39  | 
|---------------------| 
|  29.97  | 
|---------------------| 
|  33.27  | 
|---------------------| 

我知道這是很方便的實現沒有我的情況時,要求是:

df['B'] = df.A.cumsum() 

但是,我沒有任何想法如何解決這個問題,我想實現一個for循環,但我希望有一個簡單的方法使用大熊貓。

+1

你只需要一個'shift'了'cumsum'後:'df.A.cumsum()轉移()fillna(0)' – Psidom

+0

@。 Psidom,謝謝。 – lmiguelvargasf

回答

3

您可以添加shiftfillna

df = df.A.cumsum().shift().fillna(0) 
print (df) 
0  0.00 
1  0.00 
2  2.63 
3  9.73 
4 15.43 
5 22.39 
6 29.97 
7 33.27 
Name: A, dtype: float64