繁体   English   中英

大熊猫的rolling_min和rolling_max行为不同?

[英]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-rollhttps://github.com/pydata/pandas/pull/7766 )。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM