2015-12-01 28 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解釋這樣的情況:

在最小值的多次出現的情況下,返回對應於第一次出現的索引。