見出し画像

[Python] pandas DataFrame データ抽出の方法

はじめに

pandasで、データを抽出する方法として、下記の3つのパターンについて、実装を行います。

  1. 抽出条件を複数指定したい場合

  2. 抽出条件を含まない場合

  3. 抽出条件が1つの場合

例として、名簿の列に、住所情報(都道府県)がある場合、下記の条件でメンバーを抽出します。

  1. 首都圏に住むメンバーを抽出

  2. 首都圏以外に住むメンバーを抽出

  3. 特定の都道府県に住むメンバーを抽出

名簿のデータは、下記サイトを使用してダミーデータ作成しました。

使用するライブラリ

pandas

データ分析をサポートするPythonのライブラリです。

動作環境

  • windows11

  • Jupyter Notebook 6.4.8

  • Python 3.8.12

実装

CSVファイルの読み込み

import pandas as pd

file_path = "csv/dummy_personal_info.csv"
df = pd.read_csv(file_path, encoding="cp932")

CSVファイルを読み込みます。使用する名簿のデータのカラムは、下記です。

・名前
・ふりがな
・アドレス
・性別
・年齢
・都道府県

データ抽出条件を複数指定する場合

首都圏に住むメンバーの行を抽出したい場合、下記のように実装します。

prefectures_list = ['埼玉県','神奈川県','東京都','千葉県','茨城県','栃木県', '群馬県', '山梨県']
print(df[df['都道府県'].isin(prefectures_list)])

DataFrame型から条件抽出を行う際に使用するメソッドは、pandas.DataFrame.isinです。

第1引数では、抽出条件を指定します。ここでは、イテラブルなオブジェクト、DataFrame型、Series型です。

今回は、リストに抽出したい条件である、首都圏の都道府県名を設定しています。戻り値は、各行を判定した結果のブール値となるので、Trueの行だけを抽出するとしています。

データ抽出条件を指定した条件を含まないとする場合

首都圏以外に住むメンバーの行を抽出したい場合、下記のように実装します。

print(~df[df['都道府県'].isin(prefectures_list)])

指定条件を含まないデータの抽出は、先ほどの処理に対して、~を使って結果の否定を行います。

データ抽出条件が1つの場合

特定の都道府県に住むメンバーを抽出したい場合、下記のように実装します。
今回は、「神奈川県」に住むメンバーのみを抽出するとしています。

print(df[df['都道府県'] == '神奈川県'])

比較演算子で条件指定して、データを抽出することができます。

まとめ

今回は、pandasで、データを抽出するパターンとして、複数指定する場合、抽出条件を含まない場合、そして抽出条件が1つの場合について、まとめました。


この記事が気に入ったらサポートをしてみませんか?