使用
DataFrame.insert
对于设置到某个位置,这里总是先到,但是必要的更改顺序
range
reversed
:
for x in reversed(range(1,4)):
df.insert(1, f'period (-{x})', df["MONEY"].shift(periods = -x, fill_value = 0))
或由
range(4, 1, -1)
:
for x in range(4, 1, -1):
df.insert(1, f'period (-{x})', df["MONEY"].shift(periods = -x, fill_value = 0))
print (df)
TIME period (-1) period (-2) period (-3) MONEY
0 2020-01 42 300 450 34
1 2019-12 300 450 550 42
2 2019-11 450 550 0 300
3 2019-10 550 0 0 450
4 2019-09 0 0 0 550
如果未更改订单:
for x in range(1,4):
df.insert(1, f'period (-{x})', df["MONEY"].shift(periods = -x, fill_value = 0))
print (df)
TIME period (-3) period (-2) period (-1) MONEY
0 2020-01 450 300 42 34
1 2019-12 550 450 300 42
2 2019-11 0 550 450 300
3 2019-10 0 0 550 450
4 2019-09 0 0 0 550