我正在使用具有如下结构的数据框:
In[75]: df.head(2)
Out[75]:
statusdata participant_id association latency response \
0 complete CLIENT-TEST-1476362617727 seeya 715 dislike
1 complete CLIENT-TEST-1476362617727 welome 800 like
stimuli elementdata statusmetadata demo$gender demo$question2 \
0 Sample B semi_imp complete male 23
1 Sample C semi_imp complete female 23
我希望能够针对列$gender运行查询字符串.
即,
df.query("demo$gender=='male'")
但这与$符号有问题.如果我用另一个分隔符(例如 – )替换$符号,则问题仍然存在.我可以修复我的查询字符串以避免此问题.我宁愿不重命名列,因为这些列与我的应用程序的其他部分紧密对应.
我真的想坚持使用查询字符串,因为它是由我们的技术堆栈的另一个组件提供的,并且创建一个解析器对于看似简单的问题来说将是一个沉重的提升.
提前致谢.
最佳答案 当前的查询实现要求字符串是有效的python表达式,因此列名必须是有效的python标识符.您的两个选项是重命名列,或使用普通布尔过滤器,如下所示:
df[df['demo$gender'] =='male']