expr must be a string to be evaluated, <class 'bool'> given
时间: 2024-02-25 22:54:56 浏览: 35
这个错误通常是因为在使用`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的行了。
相关问题
已知某算术表达式的文法G为: (1)<AEXPR>→<AEXPR>+<TERM>丨<TERM> (2)<TERM>→<TERM>*<FACTOR>丨<FACTOR>(3)<FACTOR>→i丨(<AEXPR>) 给出i+i+i和i+i*I的最左推导、最右推导
最左推导和最右推导的概念已经在引用中给出了定义,下面分别给出i+i+i和i+i*I的最左推导和最右推导。
i+i+i的最左推导:
```
<AEXPR>
<AEXPR>+<TERM>
<TERM>+<TERM>
<FACTOR>+<TERM>
i+<TERM>
i+<FACTOR>
i+i
```
i+i+i的最右推导:
```
<AEXPR>
<TERM>
<FACTOR>
i
<FACTOR>+<TERM>
<i>+<TERM>
<i>+<FACTOR>
i+i
<TERM>+<FACTOR>
<i>+<FACTOR>
i+i+i
```
i+i*I的最左推导:
```
<AEXPR>
<TERM>
<FACTOR>
i
<FACTOR>*<FACTOR>
<i>*<FACTOR>
<i>+<FACTOR>
<FACTOR>+<TERM>
i+<TERM>
i+<FACTOR>
i+i
```
i+i*I的最右推导:
```
<AEXPR>
<TERM>
<FACTOR>
i
<FACTOR>*<FACTOR>
<i>*<FACTOR>
<i>*<FACTOR>
<FACTOR>
(<AEXPR>)
<TERM>*<FACTOR>
<FACTOR>*<FACTOR>
i*<FACTOR>
i*<AEXPR>
<FACTOR>*<AEXPR>
<i>+<AEXPR>
<FACTOR>+<TERM>
i+<TERM>
i+<FACTOR>
i+i*I
```
已知某算术表达式的文法G为: (1) <AEXPR> -<AEXPR> + <TERM><TERM>(2) <TERM>-> <TERM> *<FACTOR> <FACTOR>(3) <FACTOR> i(<AEXPR>给出i+i+i和i+i*i的最左推导、最右推导和语法树
最左推导、最右推导和语法树如下所示:
1. i+i+i的最左推导、最右推导和语法树:
最左推导:
```
<AEXPR>
<TERM>
<FACTOR>
i
<FACTOR>
+
<FACTOR>
i
<TERM>
+
<TERM>
<FACTOR>
i
```
最右推导:
```
<AEXPR>
<TERM>
<FACTOR>
i
<TERM>
<FACTOR>
+
<FACTOR>
i
<TERM>
+
<FACTOR>
i
```
语法树:
```
AEXPR
|
TERM
/ \
FACTOR TERM
| / \
i FACTOR
/ \
+ FACTOR
|
i
```
2. i+i*i的最左推导、最右推导和语法树:
最左推导:
```
<AEXPR>
<TERM>
<FACTOR>
i
<FACTOR>
+
<FACTOR>
i
<TERM>
*
<TERM>
<FACTOR>
i
```
最右推导:
```
<AEXPR>
<TERM>
<FACTOR>
i
<TERM>
<FACTOR>
*
<FACTOR>
i
```
语法树:
```
AEXPR
|
TERM
/ \
FACTOR TERM
| / \
i FACTOR
/ \
+ FACTOR
|
i
```