質問: 以下のコードのような`yr`(年)に関するloopを回して、クエリから一部データを抽出し、加工したいのですが、 `name 'yr' is not defined` というエラーが出て実行してくれません。 クエリの中で変数を使うときには、下のような表記ではいけないのでしょうか? 正しい表記法を教えて頂けますと幸いです。 ``` for yr in range(2004,2010): TF=TS.query('m>(yr+1)*12+0 and m<(yr+1)*12+10')[['CID','m']] ... ``` ``` [TS](テストデータ) ID m A 201001 C 200510 E 200601 ```
回答: 一応コメント欄で解決したと思いますが、後から見る人の参考になるように... Pandasのデータフレームの`query`構文の中で、ローカル変数を参照するには、 `変数名`の代わりに`@変数名`を使う必要があります。 たとえば、今回の質問であれば`@yr`とすることで参照することができます。 詳しくは、 をご参照ください。