如何从熊猫数据帧查询带有撇号的字符串?

时间:2020-09-11 14:19:15

标签: python pandas

所以我有一个pandas数据框,我想根据列中的特定值从中选择某些行。 以下伪代码对我有用:

df.query('Col1 == "zz" and Col2 == "yy"')

并返回在Col1中具有“ zz”和在Col2中具有“ yy”的所有行。但是,如果字符串包含撇号,我会遇到问题。例如

df.query('Col1 == "zz" and Col2 == "yy's"')

python引发语法错误。我考虑过只从字符串中删除撇号,但这是一个位置名称,保留它会更正确。我该如何解决这个问题/我可以使用什么呢?

3 个答案:

答案 0 :(得分:2)

您可以这样做:

df.query('Col1 == "zz" and Col2 == "yy\'s"')

答案 1 :(得分:2)

像上一个答案一样转义特殊字符是一种可靠的方法。另一种方法是使用多行引号:

df.query("""Col1 == "zz" and Col2 == "yy's"""")

答案 2 :(得分:1)

您的问题是python将撇号解释为特殊字符。因此,解决方案是对查询字符串加三引号,如下所示:

df.query('''Col1 == "zz" and Col2 == "yy's"''')

希望能对您进行排序。