我想获取给定行的最大值和列名(现在先说第一行)。当存在多个最大值实例时会发生什么?
这是我尝试过的:
df2=pd.DataFrame({'brand A':[1], 'brand B':[3], 'brand C':[3]}, index=['statement 1'])
result = df2.max(axis=1)
result.index = df2.idxmax(axis=1)
brand_name = result.index[0]
brand_value = result[0]
print (brand_name, brand_value)
返回:
('brand B', 3)
我想退回的东西
(('brand B', 3), ('brand C', 3))
答案 0 :(得分:4)
您可以使用where
来NaN
所有不是行最大值的值。然后,简单的stack
会将NaN
丢弃为长格式
df2.where(df2.eq(df2.max(1), axis=0)).stack()
#statement 1 brand B 3.0
# brand C 3.0
#dtype: float64