Python 数据帧中的多个最小值

Python 数据帧中的多个最小值,python,pandas,Python,Pandas,我有一个包含多个最小值的数据帧,但min函数只在列上选取一个 ABCD 0.000000 JKLM 0.016535 CAN1 0.381729 MET2 0.275013 INDI 0.149280 MAN3 0.000000 temp2.ix[temp2.idxmin()]只选取一个值为0.0的值 我想取ABCD和MAN3作为最低要求 您可以使用以下内容: df[df == df.min()].dropna() In [49]:

我有一个包含多个最小值的数据帧,但min函数只在列上选取一个

 ABCD     0.000000
 JKLM     0.016535
 CAN1     0.381729
 MET2     0.275013
 INDI     0.149280
 MAN3     0.000000
temp2.ix[temp2.idxmin()]
只选取一个值为0.0的值


我想取ABCD和MAN3作为最低要求

您可以使用以下内容:

df[df == df.min()].dropna()

In [49]: df[df == df.min()].dropna()
Out[49]:
    1
0
ABCD  0
MAN3  0

比较布尔索引的最小值

df
Out[42]: 
             b
a             
ABCD  0.000000
JKLM  0.016535
CAN1  0.381729
MET2  0.275013
INDI  0.149280
MAN3  0.000000

df[df.b == df.b.min()]
Out[43]: 
      b
a      
ABCD  0
MAN3  0
下一个解决方案是:

df.where(df == df.min()).dropna()
并且只返回一个值,因为:

此方法是ndarray.argmin的数据帧版本

并用以下方式解释这种情况:

如果最小值多次出现,则返回与第一次出现对应的索引


@Anu-使用
df2=df[df.groupby('A')['C'].transform('min')==df['C']]