所以我有一个看起来像这样的 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
先谢谢你!
答案 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