在大熊猫中,可以使用asfreq选择特定的采样时间吗?

杰克·福克斯巴博特

我在pandas DataFrame中有一些详细的时间序列数据,如下所示:

                      last   returns
time                                
1990-01-02 09:47:00  21.80       NaN
1990-01-02 09:48:00  21.82  0.000917
1990-01-02 09:49:00  21.82  0.000000
1990-01-02 09:50:00  21.80 -0.000917
1990-01-02 09:51:00  21.86  0.002752
1990-01-02 09:52:00  21.87  0.000457
1990-01-02 09:53:00  21.82 -0.002286
1990-01-02 09:54:00  21.83  0.000458
1990-01-02 09:55:00  21.85  0.000916
...                    ...       ...

我想对其进行过滤,以仅保留分钟可被5整除的数据,如下所示。为此,我使用了以下代码:

df.truncate(before='1990-01-02 09:50:00').asfreq('5T')
                      last   returns
time                                
1990-01-02 09:50:00  21.80 -0.000917
1990-01-02 09:55:00  21.85  0.000916
1990-01-02 10:00:00  21.79 -0.001375
1990-01-02 10:05:00  21.84 -0.000458
1990-01-02 10:10:00  21.91  0.000914
1990-01-02 10:15:00  21.88  0.000000
1990-01-02 10:20:00  21.87 -0.000457
1990-01-02 10:25:00  21.92 -0.000456
1990-01-02 10:30:00  21.93  0.000913
...                    ...       ...

此代码显然不能很好地概括。大熊猫内部是否有功能允许我获取通用DataFrame的5分钟数据?注意,以下代码提供以下输出。它查看第一个可用时间,然后每隔5分钟拉出一个条目。

df.asfreq('5T')
                      last   returns
time                                
1990-01-02 09:47:00  21.80       NaN
1990-01-02 09:52:00  21.87  0.000457
1990-01-02 09:57:00  21.85  0.000458
1990-01-02 10:02:00  21.84  0.001835
1990-01-02 10:07:00  21.85 -0.000914
1990-01-02 10:12:00  21.88  0.000915
1990-01-02 10:17:00  21.88  0.000915
1990-01-02 10:22:00  21.92  0.000913
1990-01-02 10:27:00  21.90  0.000914
...                    ...       ...
ALollz:

resample + asfreq

只要频率均匀地划分一天,或均匀地除以一天:

分组的仓根据时间序列起始点的一天的开始进行调整。

df.resample('5T').asfreq()

                      last   returns
time                                
1990-01-02 09:45:00    NaN       NaN
1990-01-02 09:50:00  21.80 -0.000917
1990-01-02 09:55:00  21.85  0.000916

因此,您可以使用offsetif参数明确更改起点pandas >= '1.1.0'

df.resample('5T', offset='2T').asfreq()

                      last   returns
time                                
1990-01-02 09:47:00  21.80       NaN
1990-01-02 09:52:00  21.87  0.000457

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章