どうも、たぬきねこです!
Pandasでデータをいじったりしていると、特定の列の要素で条件を指定して、データ取り出したいことがあると思います。
今回は、タイトルにもある通り、指定した列の要素が、〇〇と同じ(以上、以下、未満、より大きい)だったら抽出する方法を紹介します。
まず前提として、次のようなDataFrameを使います。
>>> import pandas as pd
>>> df = pd.DataFrame([[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]],
index=["R1", "R2", "R3", "R4"],
columns=["C1", "C2", "C3"])
>>> df
C1 C2 C3
R1 1 2 3
R2 4 5 6
R3 7 8 9
R4 10 11 12
特定の列に指定した要素を持つ行の抽出(=)
まずはC1列に1を持つ行の抽出をします。
>>> df[df["C1"] == 1]
C1 C2 C3
R1 1 2 3
C3列に9を持つ行の抽出をします。
>>> df[df["C3"] == 9]
C1 C2 C3
R3 7 8 9
特定の列に指定した数値以上、より大きい要素をもつ行の抽出(>、≧)
特定の列に指定した数値以上、より大きい要素をもつ行の抽出を行います。
まずは、C2列の5より大きいの要素を持つ列を抽出します。
>>> df[df["C2"] > 5]
C1 C2 C3
R3 7 8 9
R4 10 11 12
次にC3列の6以上の要素を持つ列を抽出します。
>>> df[df["C3"] >= 6]
C1 C2 C3
R2 4 5 6
R3 7 8 9
R4 10 11 12
特定の列に指定した数値以下、未満の要素をもつ行の抽出(<、≦)
特定の列に指定した数値以下、未満の要素をもつ行の抽出します。
まず、C2列の要素が5未満の列を抽出してみます。
>>> df[df["C2"] < 5]
C1 C2 C3
R1 1 2 3
次に、C3列の要素が6以下の列を抽出してみます。
>>> df[df["C3"] <= 6]
C1 C2 C3
R1 1 2 3
R2 4 5 6
おわりに
今回は、特定の列の要素で条件を指定して、データ取り出す方法を紹介しました。
Pandasだとデータ操作が楽で助かります。
また、いろいろ調べて紹介していきます。