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
我有一个这样的数据框
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