搜索缺少的时间戳并在 python 中显示?

TB.*_*B.M 3 python pandas

这是我的一些数据集,其中包含 Time、Temperature1、Temperature2

Timestamp.             Temperature1.        Temperature2
09/01/2016 00:00:08          53.4.                       45.5
09/01/2016 00:00:38.         53.5.                       45.2
09/01/2016 00:01:08.         54.6.                        43.2
09/01/2016 00:01:38.         55.2.                        46.3
09/01/2016 00:02:08.         54.5.                        45.5
09/01/2016 00:04:08.         54.2.                       35.5
09/01/2016 00:05:08.         52.4.                        45.7
09/01/2016 00:05:38.         53.4.                         45.2
Run Code Online (Sandbox Code Playgroud)

我的数据每 30 秒传入一次..

这是我这里的数据集..一些时间戳丢失..bcoz。每 30 秒我的数据就会到来..所以一些数据点丢失了.. 如何找到这些数据点..并将数据作为 NAN 插入......请帮助我..

Max*_*axU 5

您可以使用resample('30S', base=8)方法:

In [20]: x.resample('30S', base=8).mean()
Out[20]:
                                 Temperature1    Temperature2
Timestamp
2016-09-01 00:00:08                      53.4            45.5
2016-09-01 00:00:38                      53.5            45.2
2016-09-01 00:01:08                      54.6            43.2
2016-09-01 00:01:38                      55.2            46.3
2016-09-01 00:02:08                      54.5            45.5
2016-09-01 00:02:38                       NaN             NaN
2016-09-01 00:03:08                       NaN             NaN
2016-09-01 00:03:38                       NaN             NaN
2016-09-01 00:04:08                      54.2            35.5
2016-09-01 00:04:38                       NaN             NaN
2016-09-01 00:05:08                      52.4            45.7
2016-09-01 00:05:38                      53.4            45.2
Run Code Online (Sandbox Code Playgroud)

上面的解决方案假设Timestampis 是datetimedtype 并且它已被设置为索引。如果Timestamp是常规列(不是索引),那么从 Pandas 0.19.0 开始,我们可以datetime使用on='column_name'参数对常规列(必须是 dtype)重新采样:

In [26]: x.resample('30S', on='Timestamp', base=8).mean()
Out[26]:
                                 Temperature1    Temperature2
Timestamp
2016-09-01 00:00:08                      53.4            45.5
2016-09-01 00:00:38                      53.5            45.2
2016-09-01 00:01:08                      54.6            43.2
2016-09-01 00:01:38                      55.2            46.3
2016-09-01 00:02:08                      54.5            45.5
2016-09-01 00:02:38                       NaN             NaN
2016-09-01 00:03:08                       NaN             NaN
2016-09-01 00:03:38                       NaN             NaN
2016-09-01 00:04:08                      54.2            35.5
2016-09-01 00:04:38                       NaN             NaN
2016-09-01 00:05:08                      52.4            45.7
2016-09-01 00:05:38                      53.4            45.2
Run Code Online (Sandbox Code Playgroud)

如果你需要动态地找到你的base价值,你可以这样做:

In [21]: x.index[0].second
Out[21]: 8
Run Code Online (Sandbox Code Playgroud)

来自文档

基数:整数,默认 0

对于均匀细分 1 天的频率,聚合间隔的“起点”。例如,对于5min频率,base 的范围可以从04

默认为 0