我有一个数据帧,给定我的输入集,它只从一个操作返回一个项,我需要将该项作为一个元组转储。以下是df(下面要生成的代码):
df
animal number
location
zoo1 lions 10
zoo1 antelopes 20
zoo2 orangutans 500
zoo1 zebras 30
我要做的是找到动物绝对数量最多的位置,并将其输出为('zoo2', 500)
我尝试过的一些东西,以及它们的输出,是:
df.loc[[df['number'].idxmax()], 'number']
location
zoo2 500
tuple(df.loc[[df['number'].idxmax()], 'number'])
(500,)
我发现问题的一部分是位置是一个索引,所以我尝试重置它。这可能会让我接近,但我不知道如何进一步细分:
df.loc[[df['number'].idxmax()], 'number'].reset_index()
location number
0 zoo2 500
这也很接近,但它仍然不是我所需要的,而且对于我试图完成的工作来说似乎不必要的复杂(我也尝试在最后用[0]
对它进行索引,但它没有改变输出):
list(zip(df.loc[[df['number'].idxmax()], 'number'].items()))
[(('zoo2', 500),)]
要生成DF,请执行以下操作:
df = pd.DataFrame({'animal': ['lions', 'antelopes', 'orangutans','zebras'],
'location': ['zoo1', 'zoo1', 'zoo2', 'zoo1'],
'number': [10, 20, 500, 30]})
df = df.set_index('location')
你快到了!以下内容将满足您的需求:
或者,如果要使用阵列:
另外,您的df创建代码中有一个输入错误,missing
'
在orangutans
之前相关问题 更多 >
编程相关推荐