gpt4 book ai didi

python - 如何计算 Pandas 每日 52 周的高点/低点?

转载 作者:太空宇宙 更新时间:2023-11-03 12:58:18 27 4
gpt4 key购买 nike

我有一个具有典型 OHLC 值的简单数据框。我想从中计算每天 52 周的高点/低点(或其他时间范围)并将结果放入数据框中,以便我可以跟踪所有记录高点/低点的每日走势。

例如,如果时间范围仅为 3 天,则 3 天高/低将为:(3 日高点:最近 3 天的最大“高点”值)

Out[21]: 
Open High Low Close Volume 3-Day-High 3-Day-Low
Date
2015-07-01 273.6 273.6 273.6 273.6 0 273.6 273.6
2015-07-02 276.0 276.0 267.0 268.6 15808300 276.0 267.0
2015-07-03 268.8 269.0 256.6 259.8 20255200 276.0 256.6
2015-07-06 261.0 261.8 223.0 235.0 53285100 276.0 223.0
2015-07-07 237.2 237.8 218.4 222.0 38001700 269.0 218.4
2015-07-08 207.0 219.4 196.0 203.4 48558100 261.8 196.0
2015-07-09 207.4 233.8 204.2 233.6 37835900 237.8 196.0
2015-07-10 235.4 244.8 233.8 239.2 23299900 244.8 196.0

有什么简单的方法可以做到吗?谢谢大家!

最佳答案

您可以使用 rolling_maxrolling_min :

>>> df["3-Day-High"] = pd.rolling_max(df.High, window=3, min_periods=1)
>>> df["3-Day-Low"] = pd.rolling_min(df.Low, window=3, min_periods=1)
>>> df
Open High Low Close Volume 3-Day-High 3-Day-Low
Date
2015-07-01 273.6 273.6 273.6 273.6 0 273.6 273.6
2015-07-02 276.0 276.0 267.0 268.6 15808300 276.0 267.0
2015-07-03 268.8 269.0 256.6 259.8 20255200 276.0 256.6
2015-07-06 261.0 261.8 223.0 235.0 53285100 276.0 223.0
2015-07-07 237.2 237.8 218.4 222.0 38001700 269.0 218.4
2015-07-08 207.0 219.4 196.0 203.4 48558100 261.8 196.0
2015-07-09 207.4 233.8 204.2 233.6 37835900 237.8 196.0
2015-07-10 235.4 244.8 233.8 239.2 23299900 244.8 196.0

请注意,与您的示例一致,这使用了最后三天记录的天数,无论这些行之间的间隔有多大(例如 07-03 和 07-06 之间)。

关于python - 如何计算 Pandas 每日 52 周的高点/低点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31978132/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com