pandas小技: 複数の文字列のいずれかを含む (OR + 部分一致) 検索したい

例えば↓のテーブルから 東京都または千葉県 を含む値だけをフィルタする場合に、pandasではどう書くかです。

name
0 東京都葛飾区
1 神奈川県川崎市
2 埼玉県蕨市
3 千葉県蘇我市

pandasのstr.contains正規表現パターンを含めることができます
そのため検索したい文字列リストを | で結合すると "いずれかの文字列を含む" という検索ができます。

df = pd.DataFrame({
    "name": ["東京都葛飾区", "神奈川県川崎市", "埼玉県蕨市", "千葉県蘇我市"]
})

print(df.name.str.contains("東京都|千葉県"))
# 0     True
# 1    False
# 2    False
# 3     True
# Name: name, dtype: bool

print(df[df.name.str.contains("東京都|千葉県")])
#      name
# 0  東京都葛飾区
# 3  千葉県蘇我市

例えば、こういう絞り込みもできます。前後が.*で挟まれた文字列検索と考えることができます。

print(df[df.name.str.contains("川.+川")])
#       name
# 1  神奈川県川崎市