python:从字符串类型变量中删除双引号

python:从字符串类型变量中删除双引号,python,string,pandas,Python,String,Pandas,我有一个字符串列表 q = ["(df['city'] == 'Mumbai') & (df['pin'] == 12345)","(df['city'] == 'Delhi') & (df['pin'] == 12346)"] #len(q) = 2 现在我必须在我的数据帧上查询这两个条件 d = df.query(q[0]) Error: df unknown 检查后,我知道这是为字符串类型 d = df.query(q[0]) 像 d = df.qu

我有一个字符串列表

 q = ["(df['city'] == 'Mumbai') & (df['pin'] == 12345)","(df['city'] == 'Delhi') & (df['pin'] == 12346)"]   #len(q) = 2
现在我必须在我的数据帧上查询这两个条件

 d = df.query(q[0])   
 Error: df unknown
检查后,我知道这是为字符串类型

 d = df.query(q[0])

d = df.query("(df['city'] == 'Mumbai') & (df['pin'] == 12345)")  ###string with " "
###which will not work as per syntax
####if it will be like below it should have worked
d = df.query((df['city'] == 'Mumbai') & (df['pin'] == 12345))   ###without " "
我尝试过替换(“,”),评估(str),但没有成功

现在我相信,因为它是一个字符串数据类型,所以“”是内置的,当您在任何地方发送字符串变量时,它肯定会出现

无论如何,我都可以将该字符串传递到df.query()中而不带引号(我不知道是否可以通过更改该字符串变量的某些数据类型来完成,或者无法完成)


请建议。

双引号不是字符串的一部分,因此您不能删除它们。@timgeb是的,您是正确的。因此我需要以不同的方式格式化df.query()部分。理论上,您可以将eval()放在但是如果你的字符串来自不可信的源代码,这是非常危险的。我不确定你是否正确使用了pandas查询语法。你能试试这个:
df.query(“city='Mumbai'&pin==12345”)
?顺便问一下,字符串列表来自哪里?您应该以另一种形式获取查询,可以进一步处理,比如q=[{'city':'Mumbay','pin':12345},{'city':'…]