大Pandas的分类没有给出预期的结果

2024-05-15 20:17:33 发布

您现在位置:Python中文网/ 问答频道 /正文

基本的问题,但不能得到它的权利。我正在尝试按分数排序,然后获取与最高分数关联的最高名称。你知道吗

import pandas as pd
df = pd.DataFrame({'score' :[1,5,7,999], 'name':['jack','jill','chris','kevin']})
df.sort_values(by= 'score', ascending=False, inplace=True)
df
df.name[0]

然而,通过这种方法,我得到了Jack而不是Kevin,因为它似乎是按照数据帧创建中名称出现的顺序进行的。我错过了什么?你知道吗


Tags: nameimport权利名称dataframepandasdf排序
3条回答

试试这个。用idxmax

df.loc[df.score.idxmax(),'name']

Out[5631]: 'kevin'

索引可以由reset_index重新构造。

在您的情况下,在排序后执行下面的\u值将重新构造索引。你知道吗

df.reset_index(drop=True, inplace=True)

这是因为当您访问df.name[0]时,它指向行的索引(通过调用df.index进行检查)。名称为jack的行的索引值为0,因为创建df时第一个实例是jack。你知道吗

为了访问排序后的df上的第一行,使用.iloc进行位置索引(如果需要基于标签的索引,则使用.loc)。你知道吗

import pandas as pd
df = pd.DataFrame({'score' :[1,5,7,999], 'name':['jack','jill','chris','kevin']})
df.sort_values(by= 'score', ascending=False, inplace=True)
df
df.name.iloc[0]

返回kevin。你知道吗

相关问题 更多 >