pandas.DataFrame.shift 函数的问题

我在 python 中有以下数据框:


months = [1,2,3,4,5,6,7,8,9,10,11,12]

data1 = [100,200,300,400,500,600,700,800,900,1000,1100,1200]

df = pd.DataFrame({

                    'month' : months,

                    'd1' : data1,

                    'd2' : 0,

                });

我想通过以下方式计算列 d2:


    d1 d2 月

0 1 100 101.0

1 2 200 303.0

2 3 300 606.0

3 4 400 1010.0

4 5 500 1515.0

5 6 600 2121.0

6 7 700 2828.0

7 8 800 3636.0

8 9 900 4545.0

9 10 1000 5555.0

10 11 1100 6666.0

11 12 1200 7878.0

我是通过以下方式做到的:


df['d2'] = (df['d2'].shift(1) + df['d1']) + df['month']

但结果不是预期的:


    d1 d2 月

0 1 100 NaN

1 2 200 202.0

2 3 300 303.0

3 4 400 404.0

4 5 500 505.0

5 6 600 606.0

6 7 700 707.0

7 8 800 808.0

8 9 900 909.0

9 10 1000 1010.0

10 11 1100 1111.0

11 12 1200 1212.0

不知道我的要求有没有说清楚,谢谢谁能帮帮我。


HUX布斯
浏览 136回答 2
2回答

胡子哥哥

你需要的是累积总和:)df['d2'] = df.d1.cumsum()print(df) month    d1    d20       1   100   1001       2   200   3002       3   300   6003       4   400  10004       5   500  15005       6   600  21006       7   700  28007       8   800  36008       9   900  45009      10  1000  550010     11  1100  660011     12  1200  7800
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python