У меня есть df кадра данных как:
Col1 Col2 A -5 A 3 B -2 B 15
Мне нужно получить следующее:
Col1 Col2 A -5 B 15
Где решение было принято для каждой группы в Col1 путем выбора абсолютный максимум от Col2. Я не знаю, как с этим поступить.
Col1
Col2
Используйте DataFrameGroupBy.idxmax с передаваемыми абсолютными значениями для индексов, а затем выберите DataFrame.loc:
DataFrameGroupBy.idxmax
DataFrame.loc
df = df.loc[df['Col2'].abs().groupby(df['Col1']).idxmax()] #alternative with reassign column df = df.loc[df.assign(Col2 = df['Col2'].abs()).groupby('Col1')['Col2'].idxmax()] print (df) Col1 Col2 0 A -5 3 B 15