如何使用pandas和numpy迭代到if else循环中的下一个值

2024-05-14 01:30:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我必须在我的数据集中创建一列,并用1或-1填充它

我要检查的是:

  1. 1如果第二天的价格(收盘价)高于今天的价格
  2. (-1)如果第二天的价格(收盘价)低于今天的价格

我要做的伪代码是:

Action [ i ] = 1 if Close[ i+1 ] > Close[ i ]

Action [ i ] = (-1) if Close[ i+1 ] < Close[ i ]

我似乎无法使用Pandas/Numpy实现这个功能。 我试过在这样的for循环中使用np.where

dset2['Action'] = np.nan
action = dset2['Action'].values
close = dset2['Close'].values

def fill_action(close):
    for i in range(close):
        np.where(Close[i+1] > Close[i])
        return 1
        np.where(Close[i+1] < Close[i])
        return -1
dset['Action'] = dset.apply(fill_action,axis =1)

我得到错误序列对象不能解释为整数 我遇到的主要问题是,我找不到如何使用pandas/numpy检查行的下一个值。即 关闭[i+1]&;关闭[i]


Tags: forclosereturnifnpaction价格where