Панды Python добавляют столбец для максимального значения выбранных столбцов по строкам
data = {'name' : ['bill', 'joe', 'steve'],
'test1' : [85, 75, 85],
'test2' : [35, 45, 83],
'test3' : [51, 61, 45]}
frame = pd.DataFrame(data)
Я бы хотел, чтобы добавить новый столбец, который показывает максимальное значение для каждой строки.
желаемый результат:
name test1 test2 test3 HighScore
bill 75 75 85 85
joe 35 45 83 83
steve 51 61 45 61
иногда
frame['HighScore'] = max(data['test1'], data['test2'], data['test3'])
работает, но большую часть времени дает эта ошибка:
ValueError: значение истинности массива с более чем одним элементом неоднозначно. Использовать.любой() или.все()
почему это работает? Есть ли другой способ сделать это?
3 ответа:
>>> frame['HighScore'] = frame[['test1','test2','test3']].max(axis=1) >>> frame name test1 test2 test3 HighScore 0 bill 85 35 51 85 1 joe 75 45 61 75 2 steve 85 83 45 85