当列是整数时,Pandas查询错误

时间:2017-10-17 18:11:55

标签: python pandas

我有一个与此类似的数据集

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

看起来在列名中有空格会给出错误。

2 个答案:

答案 0 :(得分:2)

如果您reference them with backticks,您可以在 Pandas 中使用 query 上带有空格的列。

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

答案 1 :(得分:1)

query在语法方面非常挑剔。

这里简短的回答是,您在“属性样式”(name_of_dataframe.column_name)中无法引用的任何列名,您也无法在query中引用。在这种情况下,df.Location ID将无效。

作为替代方案,只需使用布尔过滤:

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