为什么.loc()函数返回空序列?

2024-06-15 07:28:38 发布

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

我有一个dataframe,我想使用pandas中的.loc()函数在dataframe中的'Fare'和'Name'列中进行条件提取

quest = data.loc[data['Fare'] == 512.329,  'Name']

但是当我运行这个程序并试图在“name”列中找出负责票价的名称时,返回的序列是空的

Series([], Name: Name, dtype: object)

如何修复此问题并获取名称


Tags: 函数name程序名称dataframepandasdata序列
2条回答

数据帧数据中的“票价”类型是什么?可能它不是一个浮动。如果它是一个字符串,那么data['Fare'] == 512.329将不会返回任何结果

首先检查data['Fare']的类型,方法是执行

data['Fare'].dtype

如果是dtype('O'),则通过执行

data['Fare'] = data['Fare'].astype(float)

或者使用如下字符串进行查询

quest = data.loc[data['Fare'] == '512.329',  'Name']

我认为条件data['Fare'] == 512.329没有得到验证,我认为这可能是一个类型错误。请验证您的512.329是浮点(而不是字符串

for i in data['Fare']:
    print(type(i))

# desired output :
# <class 'float'>

# unwanted output :
# <class 'str'>

相关问题 更多 >