gpt4 book ai didi

Python Pandas 滚动函数

转载 作者:行者123 更新时间:2023-11-28 21:44:39 25 4
gpt4 key购买 nike

我不确定我是否理解 Pandas rolling 函数中的参数 min_periods :为什么它必须小于 window 参数?我想用十个值的窗口计算(例如)滚动最大值减去滚动最小值但我想在开始计算之前等待 20 个值:

In[1]:  import pandas as pd
In[2]: import numpy as np
In[3]: df = pd.DataFrame(columns=['A','B'], data=np.random.randint(low=0,high=100,size=(100,2)))
In[4]: roll = df['A'].rolling(window=10, min_periods=20)
In[5]: df['C'] = roll.max() - roll.min()

In[6]: roll
Out[6]: Rolling [window=10,min_periods=20,center=False,axis=0]

In[7]: df['C'] = roll.max()-roll.min()

我收到以下错误:

ValueError: Invalid min_periods size 20 greater than window 10

我认为 min_periods 是用来告诉函数在开始计算之前必须等待多少个值。文档说:

min_periods : int, default None

Minimum number of observations in window required to have a value (otherwise result is NA)

我没有注意这里的“窗口内”细节......那么实现我想要实现的目标的最有效方法是什么?我应该做这样的事情吗:

roll = df.loc[20:,'A'].rolling(window=10)
df['C'] = roll.max() - roll.min()

有没有更有效的方法?

最佳答案

min_period = n选项仅表示您至少需要 n计算滚动统计数据的有效观察结果。

例子,假设min_period = 5你有一个rolling mean在过去10观察。现在,如果 6 会发生什么?最后的10观察实际上是缺失值?然后,鉴于 4<5 (实际上,这里只有 4 个非缺失值,您需要至少 5 个非缺失观察值),滚动平均值也会缺失。

这是一个非常非常重要的选择。

来自文档

min_periods : int, default None Minimum number of observations in window required to have a value (otherwise result is NA).

关于Python Pandas 滚动函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40412805/

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