<Python, pandas> queryでの選択
query
でのデータフレームDataFrame
選択。
grep
みたいなやつだね。
従来の方法。
In [101]: df = pd.DataFrame({'a':['a','b','c'], 'b':['d','e','f']}) In [102]: df Out[102]: a b 0 a d 1 b e 2 c f In [103]: df[ df.a == 'a' ] Out[103]: a b 0 a d
で、query
だと、
In [105]: df.query('a == "a"') Out[105]: a b 0 a d
ちと注意要なのが、文字/文字列の指定は"
で実施。
あと、()
内の条件式は、'
で囲む必要がある。
"
でやらないと、
In [106]: df.query('a == 'a'') File "<ipython-input-106-e86417d2686c>", line 1 df.query('a == 'a'') ^ SyntaxError: invalid syntax
エラーがでる。
あと、index
でも選択可。
In [107]: df.query('index == 0') Out[107]: a b 0 a d
にゃるほど。
マニュアル。 Indexing and Selecting Data — pandas 0.17.0 documentation