我有一个如下所示的df:
datetime policyid score
0 1970-01-01 00:00:01.593560812 9876policyID1234567890 0
1 1970-01-01 00:00:01.593560814 9876policyID1234567890 0
2 1970-01-01 00:00:01.593560958 9876policyID1234567890 1
3 1970-01-01 00:00:01.593560964 9876policyID1234567890 1
我想按policyid
和score
进行分组,但仅使每个具有相同策略ID和得分的戳记最大的行。
我正在像这样进行分组:
df.groupby(['policyid','score'])
目前,我不确定如何比较行之间的时间戳,并保持行的时间戳更大。
新DF应如下所示:
datetime policyid score
1 1970-01-01 00:00:01.593560814 9876policyID1234567890 0
3 1970-01-01 00:00:01.593560964 9876policyID1234567890 1
谢谢。
答案 0 :(得分:1)
您可以先使用sort_values
,然后再使用drop_duplicates
:
df=df.sort_values('datetime').drop_duplicates(['policyid','score'], keep='last')