如果不重复,则可以使用
idxmax,但它仅返回
max值的第一列:
print (df.idxmax(1))row1 col2row2 col1row3 col1dtype: objectdef get_column_name_for_max_values_of(row): return df.idxmax(1).ix[row]print (get_column_name_for_max_values_of('row2'))col1但重复使用
boolean indexing:
print (df.ix['row2'] == df.ix['row2'].max())col1 Truecol2 Truecol3 FalseName: row2, dtype: boolprint (df.ix[:,df.ix['row2'] == df.ix['row2'].max()]) col1 col2row1 1 3row2 2 2row3 3 1print (df.ix[:,df.ix['row2'] == df.ix['row2'].max()].columns)Index(['col1', 'col2'], dtype='object')
功能是:
def get_column_name_for_max_values_of(row): return df.ix[:,df.ix[row] == df.ix[row].max()].columns.tolist()print (get_column_name_for_max_values_of('row2'))['col1', 'col2']


