如何按时间戳对数据帧进行排序

时间:2019-04-16 17:19:45

标签: python sorting dataframe

我需要按时间戳对以下数据帧进行排序。我知道这很简单,也许只有一行代码,但是我对sort_values或sort index的所有尝试都失败了。我必须按ID和时间戳对数据框进行排序。因此,这是数据帧的一个片段:

 id        timestamp        x_value
2854    2018-01-03 00:05:35 1
2854    2018-01-03 00:05:36 1
2854    2018-01-03 00:05:37 1
2854    2018-01-03 00:05:38 1
2854    2018-01-03 00:05:39 1
2854    2018-01-03 00:05:41 2
2854    2018-01-03 00:05:15 1 
2854    2018-01-03 00:05:42 1
2854    2018-01-03 00:05:14 1
2854    2018-01-03 00:05:12 2
2854    2018-01-03 00:04:47 1
2854    2018-01-03 00:04:48 1
2854    2018-01-03 00:04:49 1
2854    2018-01-03 00:04:51 2
2854    2018-01-03 00:04:52 1
.
.
.
3245    2018-01-02 16:42:25 3
3245    2018-01-02 16:42:22 2
3245    2018-01-02 16:42:20 2
3245    2018-01-02 16:42:18 2
3245    2018-01-02 16:42:16 2
3245    2018-01-02 16:42:14 2
3245    2018-01-02 16:42:12 2
3245    2018-01-02 16:42:10 3
3245    2018-01-02 16:42:07 2
3245    2018-01-02 16:42:05 3
3245    2018-01-02 16:42:02 2
3245    2018-01-02 16:42:00 2
3245    2018-01-02 16:41:58 3
3245    2018-01-02 16:41:55 2
3245    2018-01-02 16:41:53 3
3245    2018-01-02 16:41:50 2
3245    2018-01-02 16:40:51 2
3245    2018-01-02 16:42:45 2
3245    2018-01-02 16:40:49 3
.
.
.

对于每个ID,我希望日期(天)从00:00:00到23:59:59排序。时间戳不一致,因此缺少一些时间戳,但这通常应该不是问题。我需要这样做,因为经过这种排序后,我将计算x行的差值,因此需要正确的排序时间戳,否则将得到错误的结果。谢谢!

1 个答案:

答案 0 :(得分:0)

我认为这会起作用:

df = df.sort_values(by=['id', 'timestamp'])