我如何才能找到某一列的值是最大的行?
df.max()会给我每一列的最大值,我不知道如何得到相应的行。
我如何才能找到某一列的值是最大的行?
df.max()会给我每一列的最大值,我不知道如何得到相应的行。
当前回答
如果你想要整行而不仅仅是id,你可以使用df。nbiggest和传递你想要多少“top”行,你也可以传递你想要它的列/列。
df.nlargest(2,['A'])
会给出A的前两个值对应的行。
使用df。最小值为nminimal。
其他回答
df.iloc[df['columnX'].argmax()]
argmax()将为columnX提供与max值对应的索引。iloc可以用来获取该索引的DataFrame df的行。
mx.iloc[0].idxmax()
这一行代码将告诉你如何从dataframe中的一行中找到最大值,这里mx是dataframe, iloc[0]表示第0个索引。
Use:
data.iloc[data['A'].idxmax()]
data['A'].idxmax() -根据行查找最大值位置 Data.iloc() -返回行
对我有用的是: df[df['colX'] == df['colX'].max()
然后得到df中colX最大值的行。
然后,如果你只想要索引,你可以在查询的末尾添加.index。
如果有多行取最大值,上述两个答案都只返回一个索引。如果你想要所有的行,似乎没有一个函数。 但这并不难做到。下面是一个Series的例子;DataFrame也可以这样做:
In [1]: from pandas import Series, DataFrame
In [2]: s=Series([2,4,4,3],index=['a','b','c','d'])
In [3]: s.idxmax()
Out[3]: 'b'
In [4]: s[s==s.max()]
Out[4]:
b 4
c 4
dtype: int64