Pandas,从一列中选择最大值,从另一列中选择最小值

时间:2018-03-07 09:37:36

标签: python pandas numpy

我有一个像这样的数据框

A         B
25        0.5
21        0.6
17        0.7
14        0.7   <--- this is the row I want
12        0.3

我想选择最小B最小A

有没有熊猫这么简单的技巧?

2 个答案:

答案 0 :(得分:1)

IIUC,使用where + idxmin

df.iloc[df.where(df.B.eq(df.B.max())).A.idxmin()]

A    14.0
B     0.7
Name: 3, dtype: float64

答案 1 :(得分:1)

首先按B值比较max列,然后按idxmin获取最小A的索引,最后由loc选择:

a = df.loc[df['B'] == df['B'].max(), 'A'].idxmin()
print (a)
3

#for one row DataFrame use [[]]
df = df.loc[[a]]
print (df)
    A    B
3  14  0.7

#for Series use []
s = df.loc[a]
print (s)
A    14.0
B     0.7
Name: 3, dtype: float64

<强>详细

print (df.loc[df['B'] == df['B'].max(), 'A'])

2    17
3    14
Name: A, dtype: int64