Python 列为整数时出现查询错误

Python 列为整数时出现查询错误,python,pandas,Python,Pandas,我有一个类似的数据集 Location Name 129 Hospital A 130 Hospital B 105 Hospital C 我正在尝试查询以仅获取位置为129的行 我正在尝试使用以下代码: df.query('Location == 129') 我得到一个无效的语法错误。如果列包含字符串,则不会出现这些错误 更新: 很抱歉,生成错误是因为我的位置标签是位置ID Location ID Name 129

我有一个类似的数据集

Location    Name
129         Hospital A
130         Hospital B
105         Hospital C
我正在尝试查询以仅获取位置为129的行

我正在尝试使用以下代码:

df.query('Location == 129')
我得到一个无效的语法错误。如果列包含字符串,则不会出现这些错误

更新: 很抱歉,生成错误是因为我的位置标签是位置ID

Location ID    Name
    129         Hospital A
    130         Hospital B
    105         Hospital C
在列名中使用空格似乎会导致该错误

在语法方面可能非常挑剔

这里的简短回答是,任何在“属性样式”(dataframe.column\u name)中无法引用的列名,也不能在
查询中引用。在这种情况下,
df.Location ID
将无效

或者,只需使用布尔筛选:

df[df['Location ID'] == 129]
在语法方面可能非常挑剔

这里的简短回答是,任何在“属性样式”(dataframe.column\u name
)中无法引用的列名,也不能在
查询中引用。在这种情况下,
df.Location ID
将无效

或者,只需使用布尔筛选:

df[df['Location ID'] == 129]

如果需要,可以在Pandas中的
query
上使用带空格的列

df.query('`Location ID`==129')

如果需要,您可以在Pandas中的
query
上使用带空格的列

df.query('`Location ID`==129')

使用pandas 0.20.3,您的代码运行良好。你的版本是什么?这似乎是一个bug。在我这边没问题。对不起,location列被称为location ID。我注意到,当使用带有空格的标签的查询时,它会出现错误。请参阅关于这个开放问题的讨论:您的代码在pandas 0.20.3中运行良好。你的版本是什么?这似乎是一个bug。我这边没问题。对不起,位置列称为位置ID。我注意到,当使用带有空格的标签的查询时,会出现错误。请参阅有关此开放问题的讨论: