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

Python 为什么.loc()函数返回空序列?,python,pandas,Python,Pandas,我有一个dataframe,我想使用pandas中的.loc()函数在dataframe中的'Fare'和'Name'列中进行条件提取 quest = data.loc[data['Fare'] == 512.329, 'Name'] 但是当我运行这个程序并试图在“name”列中找出负责票价的名称时,返回的序列是空的 Series([], Name: Name, dtype: object) 如何修复此问题并获取名称?我认为条件数据['Fare']==512.329未经验证,我认为可能是类

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

quest = data.loc[data['Fare'] == 512.329,  'Name']
但是当我运行这个程序并试图在“name”列中找出负责票价的名称时,返回的序列是空的

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

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

我认为条件
数据['Fare']==512.329
未经验证,我认为可能是类型错误。请验证您的
512.329
是浮点(而不是字符串

对于数据中的i['Fare']:
印刷品(第(i)类)
#期望输出:
# 
#不需要的输出:
# 

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

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

data['Fare'].dtype
data['Fare'] = data['Fare'].astype(float)
如果它是
dtype('O')
则通过执行

data['Fare'].dtype
data['Fare'] = data['Fare'].astype(float)
或者使用如下字符串进行查询

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

您确定有一行
数据['Fare']
等于
512.329
?请记住,浮点表示法可能不精确,因此很难分离出这样的值。也许给我们看一个(小的)数据帧示例,其中包含您试图分离的值?请参见.Try
np.isclose(data['Fare'],512.329)
而不是
data['Fare']==512.329
@Chris np函数起作用。谢谢它是一种“float 64”