我在 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
添加回答
举报
0/150
提交
取消