Python Pandas时间序列数据基于时间划分数据

时间:2015-10-16 07:22:02

标签: python pandas

我正在使用智能手机每隔30秒录制的GSM数据(mcc,mnc,cid,lac)。但是会有一些数据存在差距。现在我必须每五分钟获取一次数据并计算一些特征,如独特的细胞ID。我可以从第一行开始,然后再添加五分钟。然后找到小于或等于新时间的下一行。我也可以创建一个时间增量列。但这也不是很有效率。 在pandas中是否有任何有效的方法可以根据日期时间索引划分数据。

Dataframe看起来像这样:

                            mcc  mnc      cid   lac  signalis
networktime                                               
2015-10-12 22:04:06.362  405    5    10473  5071        15
2015-10-12 22:04:35.751  405    5    10473  5071        15
2015-10-12 22:05:07.358  405    5    10473  5071        15
2015-10-12 22:05:16.858  405    5    10473  5071        15
2015-10-12 22:06:07.854  405    5    10473  5071        15
2015-10-12 22:06:27.731  405    5    10473  5071        15
2015-10-12 22:07:08.261  405    5    10473  5071        15
2015-10-12 22:07:26.334  405    5    10473  5071        15
2015-10-12 22:08:08.180  405    5    10473  5071        15
2015-10-12 22:08:19.750  405    5    10473  5071        15
2015-10-12 22:08:48.098  405    5    10473  5071        15
2015-10-12 22:09:23.835  405    5  2896027  5822         8
2015-10-12 22:09:53.092  405    5    10473  5071        18
2015-10-12 22:10:19.423  405    5    10473  5071        16
2015-10-12 22:11:08.363  405    5    10473  5071        21
2015-10-12 22:11:19.475  405    5    10473  5071        21
2015-10-12 22:11:48.253  405    5    10473  5071        21
2015-10-12 22:12:19.110  405    5    10473  5071        17
2015-10-12 22:12:48.538  405    5    10473  5071        14
2015-10-12 22:13:22.486  405    5    10473  5071        15
2015-10-12 22:13:48.280  405    5    10473  5071        18
2015-10-12 22:14:48.355  405    5    10473  5071        18
2015-10-12 22:15:21.784  405    5    10473  5071        18
2015-10-12 22:15:54.823  405    5    10473  5071        17
2015-10-12 22:16:22.445  405    5  2894627  5822        11
2015-10-12 22:17:02.702  405    5  2894627  5822        11
2015-10-12 22:17:27.461  405    5  2894627  5822        11
2015-10-12 22:18:08.394  405    5  2894627  5822        11
2015-10-12 22:18:36.883  405    5  2894627  5822        11
2015-10-12 22:18:56.815  405    5  2894627  5822        11
...                      ...  ...      ...   ...       ...
2015-10-15 16:35:22.367  405  800    28492   473        16
2015-10-15 16:35:47.007  405  800    28492   473        16
2015-10-15 16:36:25.389  405  800    28492   473        16
2015-10-15 16:37:09.750  405  800    28492   473        16
2015-10-15 16:37:20.512  405  800    28492   473        16
2015-10-15 16:53:07.070  405  800    51551   445        12
2015-10-15 16:53:36.551  405  800    51551   445        12
2015-10-15 16:53:54.766  405  800    51551   445        12
2015-10-15 16:54:30.815  405  800    51551   445        12
2015-10-15 17:10:17.531  405  800    51551   445        12
2015-10-15 17:11:05.349  405  800    51551   445        12
2015-10-15 17:11:23.439  405  800    51551   445        12
2015-10-15 17:11:47.869  405  800    51551   445        12
2015-10-15 17:12:18.418  405  800    51551   445        12
2015-10-15 17:27:54.367  405    5    51551   445        12
2015-10-15 17:28:32.354  405    5    51551   445        12
2015-10-15 17:28:49.613  405    5    51551   445        12
2015-10-15 17:29:19.621  405    5    51551   445        12
2015-10-15 17:30:02.116  405    5    51551   445        12
2015-10-15 17:30:20.235  405    5    51551   445        12
2015-10-15 17:31:02.206  405    5    51551   445        12
2015-10-15 17:31:34.817  405    5    51551   445        12
2015-10-15 17:32:08.350  405    5    51551   445        12
2015-10-15 17:32:33.349  405    5    51551   445        12
2015-10-15 17:33:19.490  405    5    51551   445        12
2015-10-15 17:34:01.384  405    5    51551   445        12
2015-10-15 17:34:35.664  405    5    51551   445        12
2015-10-15 17:34:49.618  405    5    51551   445        12
2015-10-15 17:35:24.392  405    5    51551   445        12
2015-10-15 17:35:49.674  405    5    51551   445        12

任何帮助表示赞赏!!

1 个答案:

答案 0 :(得分:1)

这取决于您的数据,但最简单的方法是首先解决数据的差距问题。例如,您可以使用interpolation从时间序列中获取等间距的数据点。在此之后,应该很容易使用.split()方法在5分钟的块中划分数据。

相关问题