我正在尝试使用时间戳作为窗口来处理我的数据。
我的数据就像
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)。
但它似乎不适用于时间窗口
我该如何解答这个问题呢?
如果您有索引,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)