Python 为什么.loc()函数返回空序列?
我有一个dataframe,我想使用pandas中的.loc()函数在dataframe中的'Fare'和'Name'列中进行条件提取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未经验证,我认为可能是类
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
?请记住,浮点表示法可能不精确,因此很难分离出这样的值。也许给我们看一个(小的)数据帧示例,其中包含您试图分离的值?请参见.Trynp.isclose(data['Fare'],512.329)
而不是data['Fare']==512.329
@Chris np函数起作用。谢谢它是一种“float 64”