2015-12-01 29 views
1

我有一个多个最小值的熊猫数据框,但min函数只在列上选取一个。熊猫数据框中的多个最小值

ABCD  0.000000 
JKLM  0.016535 
CAN1  0.381729 
MET2  0.275013 
INDI  0.149280 
MAN3  0.000000 

temp2.ix[temp2.idxmin()]只挑选是ABCD与0.0

一个值我想取两者ABCD和MAN3作为最小??

回答

2

您可以使用下列内容:

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

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

谢谢:)作品太棒了! – sane

1

比较最小值为布尔索引

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 
1

下一个解决方案是:

df.where(df == df.min()).dropna() 

而且df.idxmin()只返回一个值,这是因为:

此方法是ndarray.argmin的DataFrame版本。

而且ndarray.argmindoc解释这样的情况:

在最小值的多次出现的情况下,返回对应于第一次出现的索引。