前提・実現したいこと
for分の中にif文を組み込んだところエラーが出て困っています。
政令指定都市の区部を除去したいです。
市区町村名のみのものを残し、それ以降が書いてあるもののデータをそのまま取っ払いたいです。
もしfor分とif文を使わないやり方があればその他のやり方を知りたいです。
ex
札幌市→札幌市(行を残す)
札幌市中央区→行を消す
横浜市青葉区→行を消す
渋谷区→渋谷区
発生している問題・エラーメッセージ
nothing to repeat at position 0
該当のソースコード
python
1i = 0 2for i in range(0,376): 3 if (df_b15_2_2['都道府県名'] == '東京都') & (df_b15_2_2[df_b15_2_2['市区町村名'].str.contains('*市*'or'*区*'or'*町*'or'*村*')]): 4 df_b15_2_2.iloc[[i],[3]] == np.nan 5 i += 1 6 elif (df_b15_2_2['都道府県名'] == '東京都') & (df_b15_2_2[df_b15_2_2['市区町村名'].str.contains('*市'or'*区'or'*町'or'*村')]): 7 i += 1 8 elif (df_b15_2_2['都道府県名'] != '東京都') & (df_b15_2_2[df_b15_2_2['市区町村名'].str.contains('*市*'or'*区*'or'*町*'or'*村*')]): 9 df_b15_2_2.iloc[[i],[3]] == np.nan 10 i += 1 11 elif (df_b15_2_2['都道府県名'] != '東京都') & (df_b15_2_2[df_b15_2_2['市区町村名'].str.contains('*市'or'*区'or'*町'or'*村')]): 12 i += 1 13 14 15
試したこと
都道府県名が東京都で市区町村名に市、区、町、村が含まれるならば(は任意の文字列)NaN出力して、市、区、町、村が含まれるならばそのままで
東京都で
東京都ではなくて市、区、町、村が含まれるならばNaN出力して、
東京都ではなくて~市、区、町、村が含まれるならばそのままで
それぞれに1を足して繰り返すとしたつもりです。
NaNにはdropnaで後ほど消すつもりです。
補足情報(FW/ツールのバージョンなど)
df_b15_2_2['市区町村名'] = np.where((df_b15_2_2['市区町村名'] = '市'or'区'or'町'or'村'),np.nan,df_b15_2_2['市区町村名'])
これも考えたのですがどうでしょうか