

以下のコードのような`yr`（年）に関するloopを回して、クエリから一部データを抽出し、加工したいのですが、 `name 'yr' is not
defined` というエラーが出て実行してくれません。

クエリの中で変数を使うときには、下のような表記ではいけないのでしょうか？  
正しい表記法を教えて頂けますと幸いです。

[code]

    for yr in range(2004,2010):
        TF=TS.query('m>(yr+1)*12+0 and m<(yr+1)*12+10')[['CID','m']]
    　　…
    
[/code]

[code]

    [TS]（テストデータ）
    ID  m
    A   201001
    C   200510
    E   200601
    
[/code]


CC BY-SA 4.0
2017-04-02T13:34:37.970
33714
2019-05-13T09:43:58.480
2019-05-13T09:43:58.480
29826
21324
question
python pandas
Pandasでquery実行の際に name 'yr' is not definedというエラー


一応コメント欄で解決したと思いますが、後から見る人の参考になるように…

Pandasのデータフレームの`query`構文の中で、ローカル変数を参照するには、  
`変数名`の代わりに`@変数名`を使う必要があります。

たとえば、今回の質問であれば`@yr`とすることで参照することができます。

詳しくは、  
<http://pandas.pydata.org/pandas-
docs/stable/generated/pandas.DataFrame.query.html>  
をご参照ください。


CC BY-SA 3.0
2017-04-02T14:33:06.513
33718
2017-04-02T14:33:06.513
6092
33714
answer