我使用str.contains()
创建了两个查询字符串,并将它们组合在一起,然后将其传递给DataFrame.query()
。
我收到AttributeError:'dict'对象没有属性'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)
如何查询未识别正则表达式的数据框? 有更聪明的方法吗?
答案 0 :(得分:0)
我不是专家,但是删除regex=False
部分对我来说很有效:
import pandas as pd
df = pd.DataFrame({'city': ['osaka', ], 'food': ['apple', ],})
querystr1 = 'osaka'
querystr2 = 'apple'
querystr1 = "city.str.contains('" + querystr1 + "')"
querystr2 = "food.str.contains('" + querystr2 + "')"
querystr = querystr1 + ' & ' + querystr2
print(querystr)
value = df.query(querystr, engine='python').index.values.astype(int)