見出し画像

検索弱者によるpandasのメモ

ググる時になんて検索したらいいかわかんないやつとか,正解にたどり着くのに苦労しそうなやつの個人的なまとめです.

列の要素が文字列(str)でリスト(list)の要素のどれかが含まれていたらマッチさせた〜い

import pandas as pd

dic = {'id': [1, 2, 3, 4, 5, 6], 
        'fruits': ['Apple,Banana,Grape,Orange',
                    'Apple,Orange,', 
                    'Banana,Peach',
                    'Apple', 
                    'Grape', 
                    'Apple,Banana']}
df = pd.DataFrame(dic)


df
>    id                     fruits
>0   1  Apple,Banana,Grape,Orange
>1   2              Apple,Orange,
>2   3               Banana,Peach
>3   4                      Apple
>4   5                      Grape
>5   6               Apple,Banana
# こんな感じのデータフレームがあって


match_list = ['Grape', 'Peach']
# fruits列にGrapeとPeachが含まれる行のデータがほしい


df[df.fruits.str.contains('|'.join(match_list))]
>   id                     fruits
>0   1  Apple,Banana,Grape,Orange
>2   3               Banana,Peach
>4   5                      Grape
# .str.contains('|'.join(match_list))で正規表現にしちゃえばOK

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