検索弱者による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
この記事が気に入ったらサポートをしてみませんか?