質問: ["チャーハン","餃子"] for w in words: df["x"]=df["x"].replace(w, "その他") print(df) ```
回答: replaceの引数に`regex=True`を追加して正規表現検索にすると部分一致の場合の置換が可能となります。 サンプルコードの項番1を試してみてください。 str.replaceで部分一致を置換することもできます。(項番2) 今回の質問内容から少し外れると思いますが、部分一致する場合に全体を置換するコードもサンプルコードに記述しました。(項番3,4) ``` import pandas as pd # pandas import numpy as np df = pd.DataFrame( {'x': ['カレーライス', 'ピラフ; チャーハン', 'チャーハン', 'ハンバーグ; 餃子', '餃子', 'そば; 玉丼', 'うどん']}) words = ["チャーハン","餃子"] for w in words: # 1.正規表現で一致箇所を置換 df["x"]=df["x"].replace(w, "その他", regex=True) # 2.strで一致箇所を置換 #df["x"]=df["x"].str.replace(w, "その他") # 3.正規表現で一括置換 #df["x"]=df["x"].replace("^.*{}.*$".format(w), "その他", regex=True) # 4.strで一括置換 #df.loc[df["x"].str.contains(w), "x"] = "その他" print(df) ``` **項番1,2の実行結果** ``` x 0 カレーライス 1 ピラフ; その他 2 その他 3 ハンバーグ; その他 4 その他 5 そば; 玉丼 6 うどん ``` **項番3,4の実行結果** ``` x 0 カレーライス 1 その他 2 その他 3 その他 4 その他 5 そば; 玉丼 6 うどん ```