[英]pandas rolling_min and rolling_max different behavior?
我有一个熊猫数据框,其中包含三列id,date,value。
Out[411]:
symbol date_col PX_HIGH
0 BF/B US Equity 2014-01-02 75.6800
1 DLTR US Equity 2014-01-02 56.5600
2 EMN US Equity 2014-01-02 80.5300
83620 rows × 3 columns
我想计算按符号分组的这些值的滚动最大值和最小值。 对于最大滚动
df.groupby('symbol')['PX_HIGH'].apply(lambda x: pd.rolling_max(x,window=20,min_periods=20)
我得到
Out[418]:
0 NaN
...
83605 54.5400
83606 56.0500
Length: 83620, dtype: float64
但是,当我使用滚动最小值执行相同操作时
df.groupby('symbol')['PX_HIGH'].apply(lambda x: pd.rolling_min(x,window=20,min_periods=20)
我懂了
ValueError Traceback (most recent call last)
<ipython-input-419-030ef09b7d35> in <module>()
1
----> 2 update_df.groupby('symbol')['PX_HIGH'].apply(lambda x: pd.rolling_min(x,20,20))
...
ValueError: min_periods (20) must be <= window (17)
为什么会这样呢? 我正在使用熊猫0.13.1
我不确定为什么pd.rolling_max()
不能工作,但pd.rolling_min()
不能工作,但我认为此问题已在Pandas pd.rolling_min()
中修复-请参阅http://pandas.pydata.org/下的第一项pandas-docs / version / 0.15.0 / whatsnew.html#whatsnew-0150-roll ( https://github.com/pydata/pandas/pull/7766 )。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.