gpt4 book ai didi

Python:如何填充取决于前一个值(前一行)的 Pandas 列?

转载 作者:行者123 更新时间:2023-11-30 22:42:19 24 4
gpt4 key购买 nike

我正在构建一个金融应用程序。我的位置取决于前一个位置(前一行)以及“信号”列(同一行)

DataFrame 称为 SPY。

position_arr = []
position = 0
for row in SPY['signal']:
if row=='BUY' and position == 0:
position = 1
elif row=='SELL' and position == 0:
position = -1
elif row=='CLOSE SELL' and position == -1:
position = 0
elif row=='CLOSE BUY' and position == 1:
position = 0
position_arr.append(position)

SPY['position']=position_arr

有没有更好、更有效的方法来做到这一点?

最佳答案

您可以移动position列并在列轴上使用apply():

def apply_func(row):
if row['signal']=='BUY' and row['pos_shifted'] == 0:
position = 1
elif row['signal']=='SELL' and row['pos_shifted'] == 0:
position = -1
elif row['signal']=='CLOSE SELL' and row['pos_shifted'] == -1:
position = 0
elif row['signal']=='CLOSE BUY' and row['pos_shifted'] == 1:
position = 0
return position

SPY['pos_shift'] = SPY['position'].shift()
SPY['position'] = SPY.apply(apply_func, axis=1)

关于Python:如何填充取决于前一个值(前一行)的 Pandas 列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42183657/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com