基于时间的窗口中的 Pandas min_periods

wht*_*all 5 python pandas

我正在尝试使用时间戳作为窗口来处理我的数据。

我的数据就像

Timestamp       A

8:17:11 AM      1
8:17:11 AM      2
8:17:12 AM      3
8:17:12 AM      4
8:17:13 AM      5 
8:17:13 AM      6 
Run Code Online (Sandbox Code Playgroud)

我的代码

df['test'] = df['A'].rolling('2s').sum()
Run Code Online (Sandbox Code Playgroud)

这里窗口大小为2秒,前两秒之前的输出数据应该为空

但我的结果就像

Timestamp       A    test

8:17:11 AM      1      1
8:17:11 AM      2      3
8:17:12 AM      3      6
8:17:12 AM      4      10
8:17:13 AM      5      12
8:17:13 AM      6      18
Run Code Online (Sandbox Code Playgroud)

其中显示 8:17:11 的结果

当数据大小小于窗口大小时,是否有办法禁用结果显示的功能?

我尝试使用 min_period,文档中说

窗口中需要有值的最小观测数(否则结果为 NA)。

但它似乎不适用于时间窗口

我该如何解答这个问题呢?

Zar*_*chi 0

如果您有索引,datetime则使用min_period

df = df.rolling('2s', min_periods=2).sum()
Run Code Online (Sandbox Code Playgroud)

对于 9 秒周期并开始对至少 2 个元素求和:

df = df.rolling('9s', min_periods=2).sum()
Run Code Online (Sandbox Code Playgroud)

输出:

                        A
Timestamp                
2020-02-08 08:17:11   NaN
2020-02-08 08:17:11   3.0
2020-02-08 08:17:12   6.0
2020-02-08 08:17:12  10.0
2020-02-08 08:17:13  12.0
2020-02-08 08:17:13  18.0
Run Code Online (Sandbox Code Playgroud)