全国の町丁目レベル(189,540件)の住所データのオープンデータをPython Pandasで処理してみた

 

{{DZ_TITLE}}
今、話題になっている、189,540件の全国の町丁目レベルのオープンデータを扱ってみました。

今回のデータは

CSVで提供されたデータ住所データで『都道府県』『市区町村』『大字町丁目』レベルで管理された189,540件のデータです。
以下のgitにて管理されているデータで、『国土交通省位置参照情報ダウンロードサイト』『郵便番号データダウンロード - 日本郵便』を出典として作られているようです。
https://github.com/geolonia/japanese-addresses

プログラム

import pandas as pd

class AddressList():

    def __init__(self,filepath = 'latest.txt'):
        self.df = pd.read_csv(filepath,encoding='utf8')

    def filter_df(self,address):
        val1 = ''
        val2 = ''
        val3 = ''
        
        delm1 = '都道府県'
        for delm1val in delm1:
            ary = address.split(delm1val)
            if len(ary) >1 :
                val1 = ary[0]+delm1val
                address = address.replace(val1,'')
                break

        delm2 = '市区町村'
        for delm2val in delm2:
            ary = address.split(delm2val)
            if len(ary) >1 :
                val2 = ary[0]+delm2val
                address = address.replace(val2,'')
                val3 = address
                break
        return self.df[(self.df['都道府県名']==val1) & 
                       (self.df['市区町村名']==val2) &
                       (self.df['大字町丁目名']).str.startswith(val3)]

使い方

filepath = r'D:\Data\latest.txt'
address_list = AddressList(filepath)

address = '東京都港区芝公園'
address_list.filter_df(address)

結果

/img/2020-09-22-002/2020-09-22-002-001.jpg

注意事項

今回のプログラムを読んでもらうとわかりますが、かなりラフに作りました。

  • 都道府県の省略不可
  • 丁目等のあいまい検索対応できていない
  • 番地やアパート名、会社名を入力してしまうとおかしくなる。

ただ、Web Serviceなどで。選択式でGeolocationを取得したい場合。丁度良い選択肢かもしれません。

おすすめ記事

COVID-19のRNA/DNAのチェック
COVID-19のRNA/DNAのチェック
みちびき 高精度 L1S対応、Sony spresenseは買いなのか?
みちびき 高精度 L1S対応、Sony spresenseは買いなのか?
OpenCVで動画作成 VideoWriter - Python徹底解説
OpenCVで動画作成 VideoWriter - Python徹底解説
JQuery チート
JQuery チート
Unchecked runtime.lastError: The message port closed before a response was received. / Chrome extension
Unchecked runtime.lastError: The message port closed before a response was received. / Chrome extension
Django Adminのパスワードを忘れたら? - Python
Django Adminのパスワードを忘れたら? - Python
Supponsered

外部サイト
↓プログラムを学んでみたい場合、学習コースなどもおすすめです!

Comments

comments powered by Disqus