如何在大熊猫的groupby中比较和删除行?

时间:2020-07-01 00:10:45

标签: python pandas dataframe python-3.7

我有一个如下所示的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

我想按policyidscore进行分组,但仅使每个具有相同策略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

谢谢。

1 个答案:

答案 0 :(得分:1)

您可以先使用sort_values,然后再使用drop_duplicates

df=df.sort_values('datetime').drop_duplicates(['policyid','score'], keep='last')