如何在 pandas 的 groupby 中比较和删除行?

How to compare and drop rows within groupby in pandas?

我有一个看起来像这样的 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 分组,但根据相同的 policyid 和分数只保留具有最大标记的行。

我是这样做groupby的:

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

提前谢谢你。

您可以使用sort_values,然后drop_duplicates

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