Published on

Pandasで特定の値を基にリストを除外する方法

Authors
  • avatar
    Name
    ssu
    Twitter

pandasで任意の複数の値を基にデータを除外したい、 そなん時にどうしたら良いのかを紹介します。

例えば、 ユーザリストにいるユーザから、配信停止をしたユーザを除外するような 場合は下記のように行えば簡単にできます。

import pandas as pd users = pd.DataFrame({ 'name': ['佐藤', '山田', '田中', '山本', '坂本'], 'tel': ['080-1234-5678', '080-1230-0001', '080-1234-0002', '080-1222-0001', '080-1222-0003'] }) unsubsriber = pd.DataFrame({ 'name': ['山田','坂本'], 'tel': ['080-1230-0001', '080-1222-0003'] }) users[~users.tel.isin(unsubsriber.tel)] #> 除外ができます。

ポイントはusers[~users.tel.isin(unsubsriber.tel)]ここで、 users.tel.isinでusersのtelseriesで入っているものを指定して、 その後に~でそれ以外のもの(入っているもの以外)を指定します(mask機能)。

そうすることで、任意のデータ列(series, 今回だとunsubscriber.tel)を使って、 データを除外することができます。

参考 pandas.DataFrame.drop