为什么.loc()函数返回一个空的Series?

时间:2020-02-07 12:59:01

标签: python pandas

我有一个数据框,我想在熊猫中使用.loc()函数从数据框的“票价”和“名称”列中进行条件提取。

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

但是当我运行此程序并尝试在“名称”列中找出负责票价的名称时,我得到了一个空序列。

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

如何解决此问题并获取名称?

2 个答案:

答案 0 :(得分:0)

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

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

# desired output :
# <class 'float'>

# unwanted output :
# <class 'str'>

答案 1 :(得分:0)

DataFrame数据中的“票价”是什么类型?可能不是浮点数。如果它是字符串,则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']