Pandasクエリ関数は列名にスペースがあると機能しません 質問する

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')

このため、次のエラーが発生します:

a b ==5
  ^
SyntaxError: invalid syntax

「_」などの他の文字でスペースを埋めたくありません。

pandasql を使用して変数名を括弧内に入れるハックが 1 つあります。例:[アブ]

ベストアンサー1

pandas0.25以降では、バッククォートで列名をエスケープすることができるので、

a.query('`a b` == 5') 

おすすめ記事