

この質問は、コードをかなり書き換えてしまったので、もう大丈夫です。  
次の質問⇓  
[csvファイルから都道府県ごとに市の数をカウントしたい](https://ja.stackoverflow.com/questions/93078/csv%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%81%8b%e3%82%89%e9%83%bd%e9%81%93%e5%ba%9c%e7%9c%8c%e3%81%94%e3%81%a8%e3%81%ab%e5%b8%82%e3%81%ae%e6%95%b0%e3%82%92%e3%82%ab%e3%82%a6%e3%83%b3%e3%83%88%e3%81%97%e3%81%9f%e3%81%84)

Pythonを用いて、都道府県地区町村のデータから、都道府県と市区町村を抽出したいと考えています（１の画像参照）。

ただPythonで画像２のエラーがでてしまったのですが、どのように解決すればいいのか分かりません。

[![画像の説明をここに入力](https://i.stack.imgur.com/hXq0J.png)](https://i.stack.imgur.com/hXq0J.png)

[![画像の説明をここに入力](https://i.stack.imgur.com/5t0A3.png)](https://i.stack.imgur.com/5t0A3.png)


CC BY-SA 4.0
2022-12-28T11:16:30.440
93072
2022-12-28T13:15:12.823
2022-12-28T13:15:12.823
56088
56088
question
python 正規表現
Pythonでcsvファイルから特定の情報を抽出したい


`re.search`について簡単な例を示します。

[code]

    import re
    
    s = ["東京都", "北海道", "長崎県", "京都府", "名古屋市"]
    for i in s:
        print(re.search("都|道|県|府", i))
    # <re.Match object; span=(2, 3), match='都'>
    # <re.Match object; span=(2, 3), match='道'>
    # <re.Match object; span=(2, 3), match='県'>
    # <re.Match object; span=(1, 2), match='都'>
    # None
    
[/code]

正規表現は""で囲ってください。


CC BY-SA 4.0
2022-12-28T11:37:16.903
93075
2022-12-28T11:37:16.903
39819
93072
answer


> 都道府県地区町村のデータから、都道府県と市区町村を抽出したい

`KEN_ALL.CSV` は [日本郵便 郵便番号データダウンロード
読み仮名データの促音・拗音を小書きで表記するもの](https://www.post.japanpost.jp/zipcode/dl/kogaki-
zip.html) からダウンロードしたものかと思います。都道府県と市区町村の名前は、それぞれ 7 列目と 8
列目に記載されているので、それらを抽出することになります。

[code]

    import csv
    
    filename = 'KEN_ALL.CSV'
    prefs, cities = [], []
    with open(filename, encoding='Shift JIS', newline='') as f:
        csvreader = csv.reader(f)
        for row in csvreader:
            prefs.append(row[6])  # 7列目: 都道府県名
            cities.append(row[7]) # 8列目: 市区町村名
    
    # 重複を削除
    prefs = [*{*prefs}]
    cities = [*{*cities}]
    
    print(prefs)    # 47件
    # print(cities) # 1894件
    
[/code]


CC BY-SA 4.0
2022-12-28T12:02:57.127
93076
2022-12-28T12:02:57.127
47127
93072
answer