【发布时间】:2018-09-11 02:48:05
【问题描述】:
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
【问题讨论】:
-
当窗口中有
NaN时,您期望什么功能? -
我不认为你的分位数计算是正确的
-
@Prune 我希望忽略 NaN 并假装它不存在,即在该窗口期间处理所有整数
-
“假装它不存在”有多种形式。例如,当您到达第一个完整窗口
(1, 5, NaN)时,您是只想要可见的两个值,还是要填充下一个可用值 2? -
啊,对不起,我只希望它是可见的 2 个值