列の要素が〇〇と同じ(以上、以下、未満、より大きい)などの条件を指定して取り出す方法

どうも、たぬきねこです!

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だとデータ操作が楽で助かります。

また、いろいろ調べて紹介していきます。

タイトルとURLをコピーしました