Pandas 列名中带有反斜杠的 eval

Pandas eval with backslash in column names

我有一个这样的数据框

df=pd.DataFrame([1,2,3],columns=['a\b'])

 a\b
0    1
1    2
2    3

我想在这个数据帧上评估为像 'a\b<2' 这样的表达式。

df.eval('a\b<2')

当我这样做时,我收到以下错误消息:

a \b <2
           ^
SyntaxError: unexpected character after line continuation character

有谁知道我该如何处理这种情况?我无法更改列名,因为这是数据来自数据源(和 OPC 服务器)的方式。

当列名不是有效的 python 变量名(仅以 letter/underscore、letters/numbers/underscore 开头)时,您不能使用 eval

你应该这样做:

df = pd.DataFrame([1,2,3],columns=['a\b'])
df['a\b'].lt(2)

输出:

0     True
1    False
2    False
Name: a\b, dtype: bool