【发布时间】:2019-12-08 18:19:08
【问题描述】:
我使用str.contains() 创建了两个查询字符串,并将它们组合起来,然后将其传递给DataFrame.query()。
我得到一个 AttributeError: 'dict' object has no attribute 'append'。
删除regex=False 参数工作正常,但我的数据包含一些'/*'。
所以我需要这个参数来把我的数据当作一个文字字符串。
import pandas as pd
df = pd.DataFrame({'city': ['osaka', ], 'food': ['apple', ],})
querystr1 = 'osaka'
querystr2 = 'apple'
querystr1 = "city.str.contains('" + querystr1 + "', regex=False)"
querystr2 = "food.str.contains('" + querystr2 + "', regex=False)"
querystr = querystr1 + ' & ' + querystr2
print(querystr)
value = df.query(querystr, engine='python').index.values.astype(int)
print(value)
print(value.size)
如何查询无法识别正则表达式的数据框? 有没有更聪明的方法来做到这一点?
【问题讨论】: