pandas queryのチートシート
概要
- 複雑なフィルタを簡単に記す機能
- 文字列を引数にとってSQL likeに処理することができる
各機能の説明
特定の値でフィルタする
df.query('column > 10.0')
特定の値でフィルタした結果でdfを置き換える
df.query('column > 10.0', inplace=True)
外部の変数を参照してフィルタする
val = 10.0
df.query('column > @val')
listの値が含まれているものをフィルタする
lst = [1, 2, 3]
df.query('column in @lst')
NaNでない値でフィルタ
df.query('column.notna()')
NaNである値でフィルタ
df.query('column.isna()')
nullでない値でフィルタ
df.query('column.notnull()')
nullである値でフィルタ
df.query('column.isnull()')
文字列の正規表現でフィルタ
df.query('column.str.contains("something", regex=True)')
スペースで区切られたカラム名の操作
df = pd.DataFrame({"a b c": [1, 2, 3], "value": [4, 5, 6]})
df.query('`a b c` >= 2')
"""
| | a b c | value |
|---:|--------:|--------:|
| 1 | 2 | 5 |
| 2 | 3 | 6 |
"""