[英]Select Pandas dataframe row where two or more columns have their maximum value together
[英]Pandas how to select columns where a row has maximum value?
假设我关注 dataframe:
df = pd.DataFrame({'A':[0.1,0.1,0.2],
'B': [0.22,0.2,0.22],
'C': [0.3, 0.2,0.333]})
df.index = list('abc')
df
A B C
a 0.1 0.22 0.300
b 0.1 0.20 0.200
c 0.2 0.22 0.333
如何 select 索引 b 具有最大值的所有列。
这里,索引在 B 列和 C 中具有最大值 2。 所以,需要的答案是:
required_answer = ['B','C']
我的尝试:
df[df.loc['b'] ==df.loc['b'].max()]
你可以试试这个:
df.columns[df.loc['b'] == df.loc['b'].max()].tolist()
# ['B', 'C']
我给你几个选择。 第一个是最好的:
[*df.columns[df.loc['b'].eq(df.loc['b'].max())]]
['B', 'C']
df.loc[:,df.loc['b'].eq(df.loc['b'].max())].columns.tolist()
['B', 'C']
[*df.T.index[df.loc['b'].eq(df.loc['b'].max())]]
['B', 'C']
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.