列名にスペースがあるデータフレームがあります。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')
このため、次のエラーが発生します:
a b ==5
^
SyntaxError: invalid syntax
「_」などの他の文字でスペースを埋めたくありません。
pandasql を使用して変数名を括弧内に入れるハックが 1 つあります。例:[アブ]
ベストアンサー1
pandas0.25
以降では、バッククォートで列名をエスケープすることができるので、
a.query('`a b` == 5')