为了账号安全,请及时绑定邮箱和手机立即绑定

pandas.DataFrame.shift 函数的问题

pandas.DataFrame.shift 函数的问题

HUX布斯 2021-06-16 21:08:02
我在 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.01 2 200 303.02 3 300 606.03 4 400 1010.04 5 500 1515.05 6 600 2121.06 7 700 2828.07 8 800 3636.08 9 900 4545.09 10 1000 5555.010 11 1100 6666.011 12 1200 7878.0我是通过以下方式做到的:df['d2'] = (df['d2'].shift(1) + df['d1']) + df['month']但结果不是预期的:    d1 d2 月0 1 100 NaN1 2 200 202.02 3 300 303.03 4 400 404.04 5 500 505.05 6 600 606.06 7 700 707.07 8 800 808.08 9 900 909.09 10 1000 1010.010 11 1100 1111.011 12 1200 1212.0不知道我的要求有没有说清楚,谢谢谁能帮帮我。
查看完整描述

2 回答

?
胡子哥哥

TA贡献1825条经验 获得超6个赞

你需要的是累积总和:)


df['d2'] = df.d1.cumsum()

print(df) 


month    d1    d2

0       1   100   100

1       2   200   300

2       3   300   600

3       4   400  1000

4       5   500  1500

5       6   600  2100

6       7   700  2800

7       8   800  3600

8       9   900  4500

9      10  1000  5500

10     11  1100  6600

11     12  1200  7800


查看完整回答
反对 回复 2021-06-29
  • 2 回答
  • 0 关注
  • 135 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信