PythonのPandasライブラリは、データ分析において非常に強力なツールです。特に、DataFrame
オブジェクトのquery
メソッドは、データフレームから特定の条件に一致するデータを抽出するのに便利です。
以下に、query
メソッドの基本的な使用方法を示します。
import pandas as pd
import numpy as np
# データフレームの準備
df = pd.DataFrame({
'a': range(1, 6),
'b': range(10, 0, -2),
'c c' : [1, 3, 5, 7, 9],
'd' : [2, np.nan, np.inf, None, 10],
'e' : ['a', 'b', 'c', 'd', 'e'],
'f' : [False, True, True, False, True]
})
# a列の値が3である行を抽出
df.query('a == 3')
# a列の値が3でない行を抽出
df.query('a != 3')
# a列の値が3より大きい行を抽出
df.query('a > 3')
# a列の値がb列の値より大きい行を抽出
df.query('a > b')
# e列の値が文字列"a"である行を抽出
df.query('e == "a"')
# a列の値が2より大きいかつb列の値が3より小さい行を抽出
df.query('a > 2 and b < 3')
# a列の値が2より大きいあるいはb列の値が3より小さい行を抽出
df.query('a > 2 or b < 3')
# a列の値が2以上4以下の範囲にある行を抽出
df.query('2 <= a <= 4')
# d列の値がinfである行を抽出
df.query('d == inf')
# d列の値が欠損である行を抽出
df.query('d != d')
# f列の値がTrueの行を抽出
df.query('f == True')
# a列の値が(1, 2, 3)のいずれかである行を抽出
df.query('a in (1, 2, 3)')
# a列の値が(1, 2, 3)のどれでもない行を抽出
df.query('a not in (1, 2, 3)')
# 条件の値として予め用意した変数を使用することが可能
x = 2
df.query('a == @x')
このように、query
メソッドを使用すると、様々な条件でデータフレームからデータを抽出することができます。これは、データ分析や前処理において非常に便利な機能です。
以上が、PythonとPandasを使用したデータフレームのクエリについての記事です。この情報が皆さんのデータ分析作業に役立つことを願っています。.