Вывод строк таблицы по максимальному значению из каждой группы
Есть вот такая таблица.Не получается вывести строки с максимальным значением "val_mae" для каждой компании ('Company') Буду благодарен за помощь)) просто общее понимание решения проблемы)
таблица: https://yadi.sk/d/T6SAKNuoHYeedw
Ответы (1 шт):
Автор решения: Andrey
→ Ссылка
Можно сгруппировать датафрейм по столбцу Company и затем, с помощью метода idxmax(), найти в каждой группе индекс строки с максимальным значением val_mae:
In [20]: df.groupby('Company').val_mae.idxmax()
Out[20]:
Company
AA 1
AES 34
AIG 70
APA 131
AUY 142
Name: val_mae, dtype: int64
Ну а дальше, используя iloc[], выбрать из датафрейма все строки с нужными индексами:
In [21]: df.iloc[df.groupby('Company').val_mae.idxmax()]
Out[21]:
loss mse mae val_loss val_mse val_mae Bias Company
1 0.034201 0.034201 0.129954 0.040765 0.040765 0.143848 4 AA
34 0.043737 0.043737 0.146484 0.061212 0.061212 0.163905 1 AES
70 0.300688 0.300688 0.370292 0.356461 0.356461 0.397615 7 AIG
131 0.113919 0.113919 0.228295 0.129619 0.129619 0.249188 88 APA
142 0.005302 0.005302 0.055548 0.006986 0.006986 0.063243 19 AUY
