如何按列名对行进行分组,并按日期时间

时间:2017-01-12 11:05:43

标签: python pandas

我需要按日期和时间对行进行排序ID

df =

ID   TYPE  DATETIME
1    A     12/18/2015 23:02:00
1    A     12/17/2015 12:00:09
1    A     12/18/2015 18:04:08
2    B     12/20/2015 15:03:05
2    B     12/18/2015 14:02:07

结果应该是这个:

result =

ID   TYPE  DATETIME
1    A     12/17/2015 12:00:09
1    A     12/18/2015 18:04:08
1    A     12/18/2015 23:02:00
2    B     12/18/2015 14:02:07
2    B     12/20/2015 15:03:05

我该怎么做?

df.groupby("ID").sort(...)

2 个答案:

答案 0 :(得分:2)

你可以尝试:

MCMCglmm

(我认为df.sort()现已弃用)

答案 1 :(得分:1)

您可以使用sort_values并按参数by指定列,如果需要默认升序排序,则可省略ascending

#if df['DATETIME'].dtype != datetime, convert first
df.DATETIME = pd.to_datetime(df.DATETIME)

df = df.sort_values(by=['ID','TYPE','DATETIME'])
print (df)

   ID TYPE            DATETIME
1   1    A 2015-12-17 12:00:09
2   1    A 2015-12-18 18:04:08
0   1    A 2015-12-18 23:02:00
4   2    B 2015-12-18 14:02:07
3   2    B 2015-12-20 15:03:05