Вы можете использовать функцию idxmax()
:
import pandas as pd
a = {'a':[100,95,83],'b':[90,96,87],'c':[95,87,83],'d':[83,83,95],'e':[56,63,81]}
df = pd.DataFrame(a)
print(df)
Структура данных выглядит следующим образом:
a b c d e
0 100 90 95 83 56
1 95 96 87 83 63
2 83 87 83 95 81
Используя функцию idxmax, мы получаем, к какому столбцу относится максимальное значение для каждой строки:
print(df.idxmax(axis=1))
Вывод:
0 a
1 b
2 d
Объединить его с исходным кадром данных, чтобы получить соответствующее значение, учитывая столбец, которому оно принадлежит.
df_result = pd.concat([df.idxmax(axis=1),df.max(axis=1)],axis=1)
print(df_result)
Выход:
0 1
0 a 100
1 b 96
2 d 95