【Python】pandasを使ってリストに含まれるデータを見つける方法

Pythonには多くの便利なライブラリがありますが、その中でもpandasはデータ分析に欠かせないライブラリの1つです。pandasを使えば、データフレームという形式でデータを扱うことができます。そして、データフレームに対して様々な操作を行うことができます。この記事では、pandasを使ってリストに含まれるデータを見つける方法について説明します。

pandasを使ってリストに含まれるデータを探す利点

リストに含まれるデータを探す場合、Pythonの標準ライブラリであるlistを使うことができます。しかし、pandasを使うと、リストの要素が数十万件や数百万件にもなる場合でも高速に処理することができます。また、pandasを使えば、複数の条件に合致するデータを一度に抽出したり、抽出したデータを編集したりすることもできます。

リスト操作の基本的な知識とpandasの関連性

Pythonのlistは、複数の要素をまとめて扱うことができるデータ型です。リストには、文字列や数値などの様々なデータ型の要素を含めることができます。リストに対して行える操作には、要素の追加、削除、検索、ソートなどがあります。pandasは、リストのように複数の要素をまとめて扱うことができるデータフレームを提供します。データフレームには、列ごとに異なるデータ型の要素を含めることができます。pandasには、リストの操作に関する機能が多数含まれており、高度なデータ操作が可能です。

データセットの準備: 必要なライブラリのインポートとデータの読み込み

この記事では、pandasを使ってリストに含まれるデータを見つける方法を説明するために、Titanicデータセットを使用します。Titanicデータセットは、1912年に発生したタイタニック号の沈没事故における乗客の生存状況をまとめたデータセットです。まずは、pandasライブラリをインポートし、Titanicデータセットを読み込みましょう。

# pandasライブラリをインポートする
import pandas as pd

# Titanicデータセットを読み込む
df = pd.read_csv('titanic.csv')

ここで、read_csv関数を使って、titanic.csvファイルを読み込みます。このデータセットには、891行の乗客情報が含まれています。

pandasでリストに含まれるデータを見つける基本的な方法: isin関数の使い方

pandasでは、isin関数を使って、リストに含まれるデータを見つけることができます。isin関数は、データフレームの列の中から、引数で指定された要素が含まれる行を見つけます。以下の例を見てみましょう。

# 'Sex'列が'male'または'female'の行を抽出する
male_or_female = ['male', 'female']
result = df[df['Sex'].isin(male_or_female)]
print(result)

このプログラムでは、’Sex’列に含まれる要素が’male’または’female’である行を抽出しています。具体的には、isin関数にmale_or_femaleというリストを引数として渡し、df[‘Sex’]に対してisin関数を適用しています。そして、isin関数がTrueを返した行を、df[df[‘Sex’].isin(male_or_female)]で抽出しています。

応用編: 条件に応じたデータの抽出とデータフレームの更新

isin関数を使うことで、単純なリスト検索だけでなく、複雑な条件に合致するデータを一度に抽出することもできます。たとえば、以下のような条件を満たす行を抽出することができます。

  • 年齢が20歳以上で、30歳未満である
    • チケットの等級が1または2で、かつ料金が100ドル以上である

    以下のプログラムでは、上記の条件を満たす行を抽出しています。

    # 年齢が20歳以上で、30歳未満で、かつチケットの等級が1または2で、かつ料金が100ドル以上の行を抽出する
    result = df[(df['Age'] >= 20) & (df['Age'] < 30) & ((df['Pclass'] == 1
    ) | (df['Pclass'] == 2)) & (df['Fare'] >= 100)]
    print(result)
    
    # 'Survived'列を更新する
    df.loc[result.index, 'Survived'] = 1
    print(df)
    

    このプログラムでは、条件を複数指定して、それらを&演算子で結合しています。年齢が20歳以上で、30歳未満である条件は、df[‘Age’] >= 20 と df[‘Age’] < 30で表されます。また、チケットの等級が1または2である条件は、df[‘Pclass’] == 1 | df[‘Pclass’] == 2で表されます。料金が100ドル以上である条件は、df[‘Fare’] >= 100で表されます。これらの条件をすべて満たす行を抽出しています。

    次に、抽出した行の’Survived’列の値を1に更新しています。ここで、df.loc[result.index, ‘Survived’] = 1という行を見てみましょう。df.locは、データフレームの特定の行、列、セルにアクセスするための関数です。ここでは、resultに保存された行のインデックスを指定しています。そして、’Survived’列の値を1に更新しています。

    まとめ

    この記事では、pandasを使ってリストに含まれるデータを見つける方法について説明しました。pandasを使えば、大量のデータを高速に処理することができます。また、複数の条件に合致するデータを一度に抽出したり、抽出したデータを編集したりすることもできます。今回は、isin関数を使ってリストに含まれるデータを見つける方法を説明しました。そして、条件に応じたデータの抽出とデータフレームの更新についても説明しました。これらの知識を使えば、より高度なデータ分析を行うことができます。