Pandas:获取具有自适应窗口大小的滚动指标

时间:2018-02-17 15:29:01

标签: pandas

编辑:this question确实涵盖了这个问题的答案,但这两个问题仍然不同。我永远不会使用我想到的搜索词找到另一个问题,因为我不知道min_period参数将是解决方案。与我有同样问题的其他人可能比其他问题更容易发现这个问题。

我有一系列简单的浮动作为Pandas系列称为data。我正在制作一个关于这个系列的滚动指标,在我的例子中是滚动中位数,就像这样:

data_smooth = data.rolling(window=25, center=True).median()

问题在于data_smooth的第一个和最后十二个元素是NaN。仅仅是为了说明:

> print(data_smooth)
0             NaN
1             NaN
2             NaN
3             NaN
4             NaN
5             NaN
6             NaN
7             NaN
8             NaN
9             NaN
10            NaN
11            NaN
12      17.853138
13      17.853138
14      17.939327
15      18.118628
16      18.392862
17      18.922707
18      18.922707
19      19.034254
20      19.034254
          ...    

但是,我想要以下行为:

  • 如果可以使用大小为k的窗口,我希望窗口大小为k的滚动中位数。
  • 如果无法使用尺寸为k的窗口,我只想采取最大可能窗口。

例如,元素0的滚动中位数将是该系列的前13个元素的中位数(因为我在谈论我的情况下的中心窗口),元素1的滚动中位数将是系列的前14个元素的中位数等,直到大小为25的窗口最终成为元素12及其后的可能。

0 个答案:

没有答案