- Published on
Pandasで特定の値を基にリストを除外する方法
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のtel
のseries
で入っているものを指定して、
その後に~
でそれ以外のもの(入っているもの以外)を指定します(mask機能)。
そうすることで、任意のデータ列(series, 今回だとunsubscriber.tel
)を使って、
データを除外することができます。