列名为:鲍勃汉堡一个解决方法是重命名列……但是我很好奇你是否真的可以查询上面的列,或者这确实是解析器中的一个限制。编辑:这是我尝试的
df.query("`Bob's Burgers` == 'dfasdfa'")
我得到这个错误:语法错误:无法解析反引号
dsekswqp1#
这似乎是解析器在处理奇数个引号字符时的一个限制。为了比较,我可以在名为Bob"s的列和查询Bob"s` == "dfasdfa"`上重现同样的问题,但在名为`'Bob's`的列和查询'Bob's== 'dfasdfa'上却没有。我使用的是Pandas 1.4.4。因此,只需切换引号字符,例如:
Bob"s
Bob"s` == "dfasdfa"`上重现同样的问题,但在名为`'Bob's`的列和查询
== 'dfasdfa'
df.query('''`Bob's Burgers` == "dfasdfa"''')
df.query("""`Bob's Burgers` == "dfasdfa" """) # Note the trailing space
或者使用变量:
v = 'dfasdfa' df.query("`Bob's Burgers` == @v")
col = df["Bob's Burgers"] df.query("@col == 'dfasdfa'")
col = "Bob's Burgers" df.query("@col == 'dfasdfa'")
... KeyError: False
9q78igpj2#
使用双引号的字符串比较为我工作:
df.query('`Bob\'s Burgers` == "l"')
2条答案
按热度按时间dsekswqp1#
这似乎是解析器在处理奇数个引号字符时的一个限制。为了比较,我可以在名为
Bob"s
的列和查询Bob"s` == "dfasdfa"`上重现同样的问题,但在名为`'Bob's`的列和查询
'Bob's== 'dfasdfa'
上却没有。我使用的是Pandas 1.4.4。因此,只需切换引号字符,例如:
或者使用变量:
9q78igpj2#
使用双引号的字符串比较为我工作: