У меня есть следующий фрейм данных (df)
ID start end Diff
A 1/8/2020 12:00:00 AM 1/8/2020 12:00:10 AM 10
A 1/8/2020 12:00:05 AM 1/8/2020 12:00:10 AM 5
B 1/9/2020 1:00:05 AM 1/9/2020 1:00:10 AM 5
B 1/9/2020 1:00:06 AM 1/9/2020 1:00:10 AM 4
B 1/9/2020 1:00:20 AM 1/9/2020 1:00:25 AM 5
C 1/10/2020 5:00:05 AM 1/10/2020 5:00:25 AM 20
C 1/10/2020 5:00:40 AM 1/10/2020 5:00:45 AM 5
Вот проблема: Когда времена окончания идентичны, я хотел бы удалить строку с большей продолжительностью, удалив строку с самой короткой длительность.
Желаемый результат:
ID start end Diff
A 1/8/2020 12:00:05 AM 1/8/2020 12:00:10 AM 5
B 1/9/2020 1:00:06 AM 1/9/2020 1:00:10 AM 4
B 1/9/2020 1:00:20 AM 1/9/2020 1:00:25 AM 5
C 1/10/2020 5:00:05 AM 1/10/2020 5:00:25 AM 20
C 1/10/2020 5:00:40 AM 1/10/2020 5:00:45 AM 5
По существу, когда время окончания идентично, я буду sh, чтобы удалить строку с большей продолжительностью. Я пробовал это, однако, это не принимая во внимание условие: сохранить строку более короткой продолжительности, когда время окончания идентично
df.sort_values(['Diff']).drop_duplicates(subset=['ID'])
Любое предложение (я) приветствуется.