修改时间戳以按ID排序

时间:2016-06-18 13:01:05

标签: python pandas

我有一个带有时间戳列和ID列的Pandas数据帧(Python 3.5.1)。

   Timestamp                ID   
0  2016-04-01T00:15:36.688  123  
1  2016-04-01T00:12:52.688  123  
2  2016-04-01T00:35:41.688  543  
3  2016-04-01T00:01:12.688  543  
4  2016-03-31T23:50:59.688  123  
5  2016-04-01T01:05:52.688  543  

我想对每个ID的时间戳进行排序。

   Timestamp                ID   Sequence
0  2016-04-01T00:15:36.688  123  3
1  2016-04-01T00:12:52.688  123  2
2  2016-04-01T00:35:41.688  543  2
3  2016-04-01T00:01:12.688  543  1
4  2016-03-31T23:50:59.688  123  1
5  2016-04-01T01:05:52.688  543  3

为每个ID订购时间戳的最佳方法是什么,并生成每个ID唯一的序列号?

1 个答案:

答案 0 :(得分:2)

您可以使用sort_values()groupby()cumcount()

In [10]: df['Sequence'] = df.sort_values('Timestamp').groupby('ID').cumcount() + 1

In [11]: df
Out[11]:
                Timestamp   ID  Sequence
0 2016-04-01 00:15:36.688  123         3
1 2016-04-01 00:12:52.688  123         2
2 2016-04-01 00:35:41.688  543         2
3 2016-04-01 00:01:12.688  543         1
4 2016-03-31 23:50:59.688  123         1
5 2016-04-01 01:05:52.688  543         3