expr must be a string to be evaluated, <class 'bool'> given
时间: 2024-02-25 10:54:56 浏览: 164
jQuery帮助之筛选查找 children([expr])
这个错误通常是因为在使用`query`函数时,表达式(即`expr`参数)不是一个字符串类型,而是一个布尔类型。在`query`函数中,表达式必须是一个字符串类型,用于表示筛选的条件。
例如,以下代码就会出现上述错误:
```
import pandas as pd
data = {
'name': ['Alice', 'Bob', 'Charlie', 'David', 'Emily', 'Frank'],
'gender': ['F', 'M', 'M', 'M', 'F', 'M'],
'age': [25, 30, 35, 40, 45, 50],
'height': [165, 175, 180, 185, 170, 190]
}
df = pd.DataFrame(data)
result = df.query(df['age'] > 30) # 错误的使用方式,表达式不是字符串类型
print(result)
```
正确的使用方式应该是将表达式用引号括起来,变成一个字符串类型:
```
result = df.query('age > 30') # 正确的使用方式,表达式是字符串类型
```
这样就可以正确地筛选出`age`列中大于30的行了。
阅读全文