为了账号安全,请及时绑定邮箱和手机立即绑定

获取 PREVIOUS 5 天的最低值

获取 PREVIOUS 5 天的最低值

墨色风雨 2023-04-18 16:32:46
我想获得前 5 天的最低收盘价(不包括当前持仓日),因此我有代码:LClose5=pd.DataFrame() LClose5['LClose5'] = stock_store['Close'].rolling(window=5).min()结果不是我想要的,如果当前持仓日收盘价是最低的,它会选择它作为最近5天的最低价。这是不正确的。我真正想要的是比较“当前收盘价”与“前 5 天最低价”对不起,我尽量让它尽可能简单。
查看完整描述

1 回答

?
Smart猫小萌

TA贡献1911条经验 获得超7个赞

只需使用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)

输出看起来像:


close   LClose5

10  NaN

9   NaN

4   NaN

5   NaN

7   NaN

1   4.0

5   1.0

6   1.0

2   1.0


查看完整回答
反对 回复 2023-04-18
  • 1 回答
  • 0 关注
  • 91 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信