我想计算扩展窗口统计信息,但最小周期数为3,而不是1.也就是说,我希望它在3个值的窗口之后开始计算统计量,然后包括所有值,直到那个点:
value expanding_min
------------------------
6 NaN
5 NaN
2 NaN
3 2
1 1
然而,使用
df['expanding_min']= df.groupby(groupby)['value'].transform(lambda x: pd.rolling_min(x, window=len(x), min_periods=3))
或
df['expanding_min']= df.groupby(groupby)['value'].transform(lambda x: pd.expanding_min(x, min_periods=3))
我收到以下错误:
ValueError: min_periods (3) must be <= window (1)
答案 0 :(得分:1)
这适用于我,从值更改为df.value:
pd.expanding_min(df.value, min_periods=3)
或
pd.rolling_min(df.value, window=len(df.value), min_periods=3)
两个输出:
0 NaN
1 NaN
2 2
3 2
4 1
dtype: float64
也许你的窗口是由长度为1的其他“值”设置的?这就是pandas提供错误消息的原因