我有一个DataFrame对象:
fruit quantity
apple 500
pear 400
orange 300
我希望在quantity
列中搜索最小值,然后在fruit
列中获取相应的值。
当前我的解决方案是:
df.sort_values(by='quantity',ascending=True)['fruit'][0]
我希望它返回'orange'
。
有更好的方法吗?
答案 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']