获取 PREVIOUS 5 天的最低值

我想获得前 5 天的最低收盘价(不包括当前持仓日),因此我有代码:

LClose5=pd.DataFrame()
LClose5['LClose5'] = stock_store['Close'].rolling(window=5).min()

结果不是我想要的,如果当前持仓日收盘价是最低的,它会选择它作为最近5天的最低价。这是不正确的。

我真正想要的是比较“当前收盘价”与“前 5 天最低价”

对不起,我尽量让它尽可能简单。


墨色风雨
浏览 92回答 1
1回答

Smart猫小萌

只需使用shift将所有值向下移动 1 行:LClose5['LClose5'] = stock_store['Close'].rolling(window=5).min().shift(1)这是一个玩具示例,其中第 6 个条目 (1) 低于前 5 行。列中的第一个条目LClose5(第 6 行)将为 4,因为这是上面 5 行中的最小值:import pandas as pddf = pd.DataFrame({"close": [10, 9, 4, 5, 7, 1, 5, 6, 2]})df["LClose5"] = df["close"].rolling(window=5).min().shift(1)输出看起来像:close   LClose510  NaN9   NaN4   NaN5   NaN7   NaN1   4.05   1.06   1.02   1.0
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python