Bhu*_*ant 13 python sql dataframe pandas
我有一个数据框,列名中有空格.我正在尝试使用query
方法来获得结果."c"列工作正常,但"a b"出错
import pandas as pd
a = pd.DataFrame(columns=["a b", "c"])
a["a b"] = [1,2,3,4]
a["c"] = [5,6,7,8]
a.query('a b==5')
Run Code Online (Sandbox Code Playgroud)
为此,我收到此错误:
a b ==5
^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)
我不想用其他字符填充空格,如'_'等.
有一个hack使用pandasql将变量名放在括号示例中:[ab]
jpp*_*jpp 10
DataFrame.query()
如果列名中有空格,则无法使用.考虑如果你有列名称会发生什么DataFrame.eval()
,pd.DataFrame.query
和a
; 你需要什么会有些含糊不清.
相反,你可以使用b
:
a.query('`a b`==5')
Run Code Online (Sandbox Code Playgroud)
由于您只是过滤行,因此可以a b
完全省略访问者:
df = df.loc[df['a b'] == 5]
Run Code Online (Sandbox Code Playgroud)
从熊猫0.25
开始,您将能够使用反引号转义列名称,因此您可以
a.query('`a b` == 5')
Run Code Online (Sandbox Code Playgroud)