Pandas сводная таблица или группа по абсолютному максимуму столбца - PullRequest
0 голосов
/ 05 августа 2020

У меня есть df кадра данных как:

Col1    Col2
A      -5
A       3
B      -2
B       15

Мне нужно получить следующее:

Col1    Col2
A      -5
B       15

Где решение было принято для каждой группы в Col1 путем выбора абсолютный максимум от Col2. Я не знаю, как с этим поступить.

1 Ответ

3 голосов
/ 05 августа 2020

Используйте 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
...