df = pd.read_csv('data/eurusd_dukascopy.csv')df.columns = ['timestamp', 'open', 'high', 'low', 'close', 'volume']df['oc'] = df.close - df.opendf['uptail'] = df['oc'].apply(lambda x: (df.high - df.close) if x >= 0 else (df.high - df.open))给出错误:ValueError:错误的项目数通过 2963,放置意味着 1我只想执行以下操作:如果df.oc是正数,则df.uptail = (df.high - df.close) ...else df.uptail = (df.high - df.open)我怎样才能解决这个问题?
2 回答

蓝山帝景
TA贡献1843条经验 获得超7个赞
看起来您想要uptail的是,close - open如果这是正数,high - open如果close - open是负数或 0。
您可以使用以下代码实现这一点:
df['uptail'] = df.high - df.open
df.loc[df.close > df.open, 'uptail'] = \
df.loc[df.close > df.open, 'high'] - df.loc[df.close > df.open, 'close']
添加回答
举报
0/150
提交
取消