gpt4 book ai didi

python - 获取向量最后 n 个周期的高点和低点

转载 作者:行者123 更新时间:2023-12-01 05:27:27 25 4
gpt4 key购买 nike

在Python中给定时间范围内从list/numpy/vector/pandas列中获取最大值的最佳方法是什么?

我有一个 pandas 数据框,对于其中一列,我想放置一个新列,其中包含过去 3 个值(或给定的过去时间范围)的最大值。

例如,我想仅从时间戳和 value1 列开始构建此数据框:

timestamp   value1  max3    min3
10:00:00 8 NA NA
10:00:05 2 NA NA
10:00:10 5 NA NA
10:00:15 7 8 2
10:00:20 10 7 2

我可以使用 for 循环轻松地做到这一点,但效率非常低。那么,还有更快的替代方案吗?

最佳答案

看起来您想要将 rolling_maxrolling_minshift 结合使用,因为您不想将当前值包含在计算:

In [17]: df
Out[17]:
value1
timestamp
2014-01-10 10:00:00 8
2014-01-10 10:00:05 2
2014-01-10 10:00:10 5
2014-01-10 10:00:15 7
2014-01-10 10:00:20 10

[5 rows x 1 columns]

In [18]: df['max3'] = pd.rolling_max(df['value1'], window=3).shift()

In [19]: df['min3'] = pd.rolling_min(df['value1'], window=3).shift()

In [20]: df
Out[20]:
value1 max3 min3
timestamp
2014-01-10 10:00:00 8 NaN NaN
2014-01-10 10:00:05 2 NaN NaN
2014-01-10 10:00:10 5 NaN NaN
2014-01-10 10:00:15 7 8 2
2014-01-10 10:00:20 10 7 2

[5 rows x 3 columns]

关于python - 获取向量最后 n 个周期的高点和低点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21056492/

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