pandas Cumprod Plus添加的编号

5uzkadbs  于 2023-03-16  发布在  其他
关注(0)|答案(1)|浏览(178)

我有以下数据框:

data = {'Change': [.9, .8, .96, 1.5],
        'Add': [0, 0, 660, 0],
        'Open_Value':[1000, 900, 720, 691.2],
        'Close_Value':[900, 720, 691.2, 1036.8]} 

   Change  Add  Open_Value  Close_Value
0    0.90    0      1000.0        900.0
1    0.80    0       900.0        720.0
2    0.96  660       720.0        691.2
3    1.50    0       691.2       1036.8

目前,我使用apply和cumprod的组合“Open_Value”*“Change”来获取“Open_Value”和“Close_Value”列。然而,我想实现将“Add”列添加到当前行的“Close Value”和下一行的Open_Value中的逻辑,但我很难弄清楚如何在继续保持cumprod工作的同时完成此操作。
这是我想要的df:

Change  Add  Open_Value  Close_Value
0    0.90    0        1000          900
1    0.80    0         900          720
2    0.96  660         720         1080
3    1.50    0        1080         1620

有人有什么建议吗?

fzsnzjdm

fzsnzjdm1#

这里的技巧是使用函数shiftAdd列数据向上滑动到下一行。

df['Close_Value'] = df['Close_Value'] + df['Add']
df['Open_Value'] = df['Open_Value'] + df['Add'].shift()

print(df)
Change  Add  Open_Value  Close_Value
0    0.90    0         NaN        900.0
1    0.80    0       900.0        720.0
2    0.96  660       720.0       1351.2
3    1.50    0      1351.2       1036.8

计算完成后,可以使用以下指令删除Add列:
一个二个一个一个

相关问题