我有一个像这样的数据框
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
。
有没有熊猫这么简单的技巧?
答案 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