вы также можете использовать apply и создать такой метод, который имеет:
def returncolname(row, colnames):
return colnames[np.argmax(row.values)]
df['colmax'] = df.apply(lambda x: returncolname(x, df.columns), axis=1)
Out[62]:
row1 col2
row2 col1
row3 col1
dtype: object
a вы можете использовать df.max (ось = 1) для извлечения maxes
df.max(axis=1)
Out[69]:
row1 3
row2 2
row3 3