如何根据条件删除重复项?蟒蛇/熊猫

时间:2021-05-06 12:06:56

标签: python pandas duplicates conditional-statements delete-row

所以我有一个看起来像这样的 df:

Person_ID    Procedure_ID   Date(d/m/y)
34           30             03/03/2011
34           30             02/03/2011
32           19             01/01/2020
34           32             01/04/2012

如果一个 Person_ID 有两次或更多次相同的过程,比如上面的 34 - 30 情况,代码只需要保留最新的行,删除所有其他行。在示例中,我给出的预期结果是:

Person_ID    Procedure_ID   Date(d/m/y)
34           30             02/03/2011
32           19             01/01/2020
34           32             01/04/2012

先谢谢你!

1 个答案:

答案 0 :(得分:1)

Groupby 'Person_ID', 'Procedure_ID' 并从每个组中获取最后一个元素。

代码

df.sort_values(by='Date(d/m/y)').groupby(['Person_ID', 'Procedure_ID'], as_index=False).last()

输出

Person_ID   Procedure_ID    Date(d/m/y)
0   32      19              01/01/2020
1   34      30              02/03/2011
2   34      32              01/04/2012