Python 获取前5天的最低值

Python 获取前5天的最低值,python,python-3.x,pandas,Python,Python 3.x,Pandas,我想获得前5天的最低收盘价(不包括当前持仓日),因此我有代码: LClose5=pd.DataFrame() LClose5['LClose5'] = stock_store['Close'].rolling(window=5).min() 结果不是我想要的,如果当前持仓日收盘价是最低的,它会选择它作为过去5天的最低价格。这是不正确的 我真正想比较的是“当前收盘价”和“前5天最低价格” 很抱歉,我试图使其尽可能简单。只需使用shift将所有值向下移动一行: LClose5['LClose5']

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

LClose5=pd.DataFrame()
LClose5['LClose5'] = stock_store['Close'].rolling(window=5).min()
结果不是我想要的,如果当前持仓日收盘价是最低的,它会选择它作为过去5天的最低价格。这是不正确的

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


很抱歉,我试图使其尽可能简单。

只需使用
shift
将所有值向下移动一行:

LClose5['LClose5']=stock_store['Close'].rolling(window=5.min().shift(1)

下面是一个玩具示例,其中第6个条目(1)低于前5行。
LClose5
列(第6行)中的第一个条目将为4,因为这是上面5行中的最小值:

import pandas as pd

df = pd.DataFrame({"close": [10, 9, 4, 5, 7, 1, 5, 6, 2]})
df["LClose5"] = df["close"].rolling(window=5).min().shift(1)
输出如下所示:

close   LClose5
10  NaN
9   NaN
4   NaN
5   NaN
7   NaN
1   4.0
5   1.0
6   1.0
2   1.0

如果您不需要总的最小值,请删除
.min()
如果您今天要排除,请先过滤数据帧以排除它。您可以共享数据样本吗?