熊猫在A列中搜索最小值,然后在同一行的B列中获取该值

时间:2019-10-30 08:58:36

标签: python pandas

我有一个DataFrame对象:

fruit   quantity
apple   500
pear    400
orange  300

我希望在quantity列中搜索最小值,然后在fruit列中获取相应的值。

当前我的解决方案是:

df.sort_values(by='quantity',ascending=True)['fruit'][0]我希望它返回'orange'

有更好的方法吗?

2 个答案:

答案 0 :(得分:2)

尝试使用pandas.Series方法获取.idxmin()列的最小值的索引,然后使用.loc获取fruit列中的对应值

df.loc[df.quantity.idxmin(), 'fruit']

答案 1 :(得分:1)

如果要让quantity的第一个最小值中的第一个quantity使用DataFrame.set_index进行索引,然后使用Series.idxmin

out = df.set_index('fruit')['quantity'].idxmin()
print (out)
orange

如果有多个最小值,请使用boolean indexing

out = df.loc[df['quantity'].eq(df['quantity'].min()), 'fruit'].tolist()
print (out)
['orange']