У меня есть dataFrame, и мне нужно удалить дубликаты на группу ('col1') на основе минимального значения в другом столбце 'abs (col1 - col2)', но мне нужно изменить это условие для последней группы, взявМаксимальное значение в «abs (col1 - col2)», соответствующее последней группе в «col1», где я отсортировал «col1» в порядке возрастания. (чтобы вести себя как цикл)
Обновление 1:
Мне нужно назначить последнюю группу динамически.
например, если у меня естьфрейм данных как
df = pd.DataFrame( {'col0':['A','A','A','A','A','A','A','A','A','A','A','A','B','B','B','B','B','B','B','B','B','B','B','B'],'col1':[1,1,1,2,2,2,3,3,3,4,4,4,2,2,2,3,3,3,4,4,4,5,5,5], 'col2':[2,3,4,1,3,4,1,2,4,1,2,3,3,4,5,2,4,5,2,3,5,2,3,4]})
вычисление столбца Diff (этот столбец будет использоваться как условие)
df['abs(col1 - col2)']=abs(df['col1']-df['col2'])
- Исходный Df следующим образом:
- Требуемый Df долженвыглядит так:
мой тест:
df.sort_values(by=['col0','col1','abs(col1 - col2)','col2'],ascending=[True,True,True,False]).drop_duplicates(['col0','col1'])
получено следующее: