繁体   English   中英

获取 PREVIOUS 5 天的最低值

[英]Get the lowest value of PREVIOUS 5 days

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

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

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

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

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

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

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)

output 看起来像:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM