忽略nans的python中的滚动功能

时间:2018-09-10 17:52:53

标签: python pandas

https://pandas.pydata.org/pandas-docs/version/0.17.0/generated/pandas.rolling_quantile.html

我看不到如何在滚动百分比函数中最好地忽略NaN。有人知道吗?

seriestest = pd.Series([1, 5, 7, 2, 4, 6, 9, 3, 8, 10])

并插入nans

seriestest2 = pd.Series([1, 5, np.NaN, 2, 4, np.nan, 9, 3, 8, 10])

现在,在第一个系列中,我使用以下命令获得了预期的输出:

seriestest.rolling(window = 3).quantile(.5)

但是,我希望这样做,并忽略test2系列上的NaN。

seriestest2.rolling(window = 3).quantile(.5)

礼物:

0    NaN
1    NaN
2    NaN
3    NaN
4    NaN
5    NaN
6    NaN
7    NaN
8    8.0
9    8.0
dtype: float64

但是我认为,如果我们可以解析skipna=True,它会给出类似的结果,这对我不起作用:

0    NaN
1    NaN
2    5.0
3    2.0
4    4.0
5    4.0
6    4.0
7    3.0
8    8.0
9    8.0
dtype: float64

1 个答案:

答案 0 :(得分:0)

问题在于拥有void __fastcall TForm::ListBox1Click(TObject *Sender) { if (GetKeyState(VK_LBUTTON)) ... if (GetKeyState(VK_RBUTTON)) ... } 值将使您的滚动窗口中的元素数少于所需数量(3)。您可以通过设置nan参数,用rolling定义有效观察的最小数量。

min_periods

或者,如果您只想将seriestest2.rolling(window=3, min_periods=1).quantile(.5) 的值替换为nan,则可以使用0

fillna