【发布时间】:2016-08-31 23:25:02
【问题描述】:
我有一个股票价格数据帧,我想在单独的数据帧中创建一列布尔值
带有价格数据的 DataFrame 有一个使用 DateTime 索引。
我正在尝试检查股票价格是否连续 3 天上涨,如果是,那么我希望其他 DataFrame 在第三天显示 True。
这是我尝试过的所有事情
df_signal['3DayIncrease'] = df_prices[symbol_name].shift(3) < df_prices[symbol_name].shift(2) < df_prices[symbol_name].shift(1) < df_prices[symbol_name]
df_signal['3DayIncrease'] = df_prices[symbol_name].shift(3) < df_prices[symbol_name].shift(2) & \
df_prices[symbol_name].shift(2) < df_prices[symbol_name].shift(1) & \
df_prices[symbol_name].shift(1) < df_prices[symbol_name]
df_signal['3DayIncrease'] = df_prices[symbol_name].shift(3) < df_prices[symbol_name].shift(2) and \
df_prices[symbol_name].shift(2) < df_prices[symbol_name].shift(1) and \
df_prices[symbol_name].shift(1) < df_prices[symbol_name]
我正在为这个抓住稻草
df_signals['3DayIncrease'] = ((df_prices[symbol_name].shift(3) < df_prices[symbol_name].shift(2)) == True) and \
((df_prices[symbol_name].shift(2) < df_prices[symbol_name].shift(1)) == True) and \
((df_prices[symbol_name].shift(1) < df_prices[symbol_name]) == True)
如果我一次只比较两行,它工作正常。例如
df_signal['3DayIncrease'] = df_prices[symbol_name].shift(3) < df_prices[symbol_name].shift(2)
工作没有任何问题,但显然没有做我想要的。
【问题讨论】:
标签: python pandas time-series timeserieschart