我如何才能找到某一列的值是最大的行?
df.max()会给我每一列的最大值,我不知道如何得到相应的行。
我如何才能找到某一列的值是最大的行?
df.max()会给我每一列的最大值,我不知道如何得到相应的行。
当前回答
Use:
data.iloc[data['A'].idxmax()]
data['A'].idxmax() -根据行查找最大值位置 Data.iloc() -返回行
其他回答
mx.iloc[0].idxmax()
这一行代码将告诉你如何从dataframe中的一行中找到最大值,这里mx是dataframe, iloc[0]表示第0个索引。
df.iloc[df['columnX'].argmax()]
argmax()将为columnX提供与max值对应的索引。iloc可以用来获取该索引的DataFrame df的行。
直接的“.argmax()”解决方案不适合我。
前面的例子由@ely提供
>>> import pandas
>>> import numpy as np
>>> df = pandas.DataFrame(np.random.randn(5,3),columns=['A','B','C'])
>>> df
A B C
0 1.232853 -1.979459 -0.573626
1 0.140767 0.394940 1.068890
2 0.742023 1.343977 -0.579745
3 2.125299 -0.649328 -0.211692
4 -0.187253 1.908618 -1.862934
>>> df['A'].argmax()
3
>>> df['B'].argmax()
4
>>> df['C'].argmax()
1
返回以下消息:
FutureWarning: 'argmax' is deprecated, use 'idxmax' instead. The behavior of 'argmax'
will be corrected to return the positional maximum in the future.
Use 'series.values.argmax' to get the position of the maximum now.
所以我的解是:
df['A'].values.argmax()
考虑这个数据框架
[In]: df = pd.DataFrame(np.random.randn(4,3),columns=['A','B','C'])
[Out]:
A B C
0 -0.253233 0.226313 1.223688
1 0.472606 1.017674 1.520032
2 1.454875 1.066637 0.381890
3 -0.054181 0.234305 -0.557915
假设一个人想知道列“C”最大的行,下面的工作将完成
[In]: df[df['C']==df['C'].max()])
[Out]:
A B C
1 0.472606 1.017674 1.520032
Use:
data.iloc[data['A'].idxmax()]
data['A'].idxmax() -根据行查找最大值位置 Data.iloc() -返回行