![見出し画像](https://assets.st-note.com/production/uploads/images/76486969/rectangle_large_type_2_132959ec82ddd21e5a072657da174379.png?width=1200)
[Python] pandas DataFrame データ抽出の方法
はじめに
pandasで、データを抽出する方法として、下記の3つのパターンについて、実装を行います。
抽出条件を複数指定したい場合
抽出条件を含まない場合
抽出条件が1つの場合
例として、名簿の列に、住所情報(都道府県)がある場合、下記の条件でメンバーを抽出します。
首都圏に住むメンバーを抽出
首都圏以外に住むメンバーを抽出
特定の都道府県に住むメンバーを抽出
名簿のデータは、下記サイトを使用してダミーデータ作成しました。
使用するライブラリ
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ファイルを読み込みます。使用する名簿のデータのカラムは、下記です。
・名前
・ふりがな
・アドレス
・性別
・年齢
・都道府県
![](https://assets.st-note.com/img/1650008731236-qmuU5bdn1R.png?width=1200)
データ抽出条件を複数指定する場合
首都圏に住むメンバーの行を抽出したい場合、下記のように実装します。
prefectures_list = ['埼玉県','神奈川県','東京都','千葉県','茨城県','栃木県', '群馬県', '山梨県']
print(df[df['都道府県'].isin(prefectures_list)])
DataFrame型から条件抽出を行う際に使用するメソッドは、pandas.DataFrame.isinです。
第1引数では、抽出条件を指定します。ここでは、イテラブルなオブジェクト、DataFrame型、Series型です。
今回は、リストに抽出したい条件である、首都圏の都道府県名を設定しています。戻り値は、各行を判定した結果のブール値となるので、Trueの行だけを抽出するとしています。
![](https://assets.st-note.com/img/1650009824954-ueuzwCUb9W.png?width=1200)
データ抽出条件を指定した条件を含まないとする場合
首都圏以外に住むメンバーの行を抽出したい場合、下記のように実装します。
print(~df[df['都道府県'].isin(prefectures_list)])
指定条件を含まないデータの抽出は、先ほどの処理に対して、~を使って結果の否定を行います。
![](https://assets.st-note.com/img/1650009862233-AejFkdvfFe.png?width=1200)
データ抽出条件が1つの場合
特定の都道府県に住むメンバーを抽出したい場合、下記のように実装します。
今回は、「神奈川県」に住むメンバーのみを抽出するとしています。
print(df[df['都道府県'] == '神奈川県'])
比較演算子で条件指定して、データを抽出することができます。
![](https://assets.st-note.com/img/1650009920742-Pk4z8EWSPS.png?width=1200)
まとめ
今回は、pandasで、データを抽出するパターンとして、複数指定する場合、抽出条件を含まない場合、そして抽出条件が1つの場合について、まとめました。