スポンサーリンク

[Pandas]データの抽出

Python

pandasで特定の条件を使ってデータを抽出する方法を解説します。

データの抽出

データセット

import pandas as pd
from sklearn.datasets import load_iris
iris_data = load_iris()
df = pd.DataFrame(
    data = iris_data.data,
    columns = iris_data.feature_names,
)
df["label"] = iris_data.target
df

load_irisのデータセットを使います。

locでデータを取り出す

df.loc[df.label == 0]

locで条件を指定することでデータを取り出せます。上記はlabel = 0のデータが対象です。

df.loc[(df.label == 0) & (df["sepal length (cm)"] > 5.0)]

こんな感じで複数条件にすることも可能です。””で囲うか、.でつなげるかは自由です。

df.loc[(df.label == 0), "sepal length (cm)"]

カンマで区切ってから列名を入れると、条件に合致する行における指定したデータを取り出せます。

ilocでデータを取り出す

df.iloc[0]

ilocは行番号を使って取り出します。上記は0行目を取り出します。

df.iloc[0, 0]

iloc[行, 列]として指定できます。上記は0行目の0列目です。

df.iloc[[1, 5, 10], 0]

こんな感じで、リストにして複数の番号を渡すことも可能です。

df.iloc[:, 0]
# df.iloc[0, :]

行または列番号に:を入れると、すべてが対象になります。上記1行目は、全行の1列目データです。
コメントアウトしている2行目は、0行目の全列のデータですね。

まとめ

locとilocでデータを取り出す方法を解説しました。
locは条件を指定して取り出す方法で、ilocは番号を指定して取り出す方法です。

コメント

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