파이썬으로 법정동코드와 행정동코드 조회하는 방법

PNG

파이썬 PublicDataReader 라이브러리를 이용하면 법정동코드와 행정동코드를 쉽게 조회할 수 있습니다. 또, 행정동과 관할 법정동의 연결내용도 확인 가능합니다.


행정동과 법정동의 차이

공공 데이터를 조사할 때, 시도/시군구에 속한 동의 표기가 여러 가지가 있음을 알 수 있습니다. 예를 들어, ‘행정안전부 주민등록인구현황 행정구역(읍면동)별/5세별 주민등록인구(2011년~)’ 데이터에서는 동을 행정동으로 구분하고 있지만, ‘국토교통부 실거래가 공개시스템‘에서 제공하는 부동산 실거래가 데이터에서는 동을 법정동으로 구분하고 있습니다.

법정동은 지적도와 주소 등 모든 법적 업무에 사용되는 공식 행정구역 명칭입니다. 행정동은 행정기관들이 주민 수, 면적 등을 고려해 행정 편의를 위해 설정한 행정구역입니다. 일반적으로 동사무소나 주민센터처럼 불리는 행정기관은 행정동마다 한 곳씩 설치되어 있습니다.

  • 행정동: 법정동을 행정상으로 관할하는 행정기관(읍면동) 명칭과 동일
    • ※「행정동코드」와「주민등록 행정기관코드(이하, 행정기관코드)」는 동일한 용어임
    • (예시) 경기도 성남시 분당구 정자1동
  • 법정동: 공부상의 법정주소로서 문서에 표기되거나 주소에 사용
    • (예시) 경기도 성남시 분당구 정자동

한 개의 행정동은 여러 개의 법정동으로 나뉘어져 있거나, 한 개의 법정동은 여러 개의 행정동으로 나뉘어져 있을 수 있습니다. 따라서, 다른 동 분류 체계를 가진 데이터를 동을 기준으로 병합하고자 할 때는 각각의 행정동이 어떤 법정동을 관할하고 있는지에 대한 정보가 필요합니다.


PublicDataReader

PublicDataReader는 공공 데이터를 자동으로 조회할 수 있는 파이썬 라이브러리입니다. 이 라이브러리는 공공데이터포털과 국가통계포털(KOSIS)과 같이 Open API 서비스로 제공하는 공공 데이터를 쉽게 조회할 수 있도록 도와줍니다. 인증키가 필요한 공공 데이터는 인증키를 사용하여 조회할 수 있고, 인증키가 필요하지 않은 데이터는 별도의 인증 절차 없이 조회할 수 있습니다.

PublicDataReader를 이용하면 일반적인 공공 데이터 조회 과정에서 필요한 API 명세 찾기, 요청 작성, 반환된 데이터 정리 과정을 자동으로 처리해줍니다. 또한, 웹에 공개된 데이터를 조회할 때도 데이터 수집과 가공 과정을 자동화해줍니다. 이를 통해 코드 작성이 간결해지고 공공 데이터 조회 작업이 편리해집니다.


설치하기

  • 운영체제(OS)에 따라 아래 중 하나를 선택합니다.
    • Windows: CMD(명령 프롬프트) 실행
    • Mac: Terminal(터미널) 실행

아래 Shell 명령어를 입력 후 실행합니다.

pip install PublicDataReader --upgrade


PublicDataReader 임포트하기

코드 편집기에서 다음과 같이 설치한 PublicDataReader를 임포트합니다.

import PublicDataReader as pdr


행정동코드 조회하기

pdr.code_hdong() 명령으로 행정동코드 정보를 Pandas DataFrame 객체롤 생성하여 행정동코드 변수에 할당합니다. head() 명령으로 데이터의 첫 5개 행을 출력합니다.

행정동코드 = pdr.code_hdong()
행정동코드.head()
시도코드 시도명 시군구코드 시군구명 행정동코드 읍면동명 생성일자 말소일자
0 11 서울특별시 11000 NaN 1100000000 NaN 19880423 NaN
1 11 서울특별시 11110 종로구 1111000000 NaN 19880423 NaN
2 11 서울특별시 11110 종로구 1111051000 청운동 19880423 20081101
3 11 서울특별시 11110 종로구 1111051500 청운효자동 20081101 NaN
4 11 서울특별시 11110 종로구 1111052000 효자동 19880423 20081101


법정동코드 조회하기

pdr.code_bdong() 명령으로 법정동코드 정보를 Pandas DataFrame 객체롤 생성하여 법정동코드 변수에 할당합니다. head() 명령으로 데이터의 첫 5개 행을 출력합니다.

법정동코드 = pdr.code_bdong()
법정동코드.head()
시도코드 시도명 시군구코드 시군구명 법정동코드 읍면동명 동리명 생성일자 말소일자
0 11 서울특별시 11000 NaN 1100000000 NaN NaN 19880423 NaN
1 11 서울특별시 11110 종로구 1111000000 NaN NaN 19880423 NaN
2 11 서울특별시 11110 종로구 1111010100 청운동 NaN 19880423 NaN
3 11 서울특별시 11110 종로구 1111010200 신교동 NaN 19880423 NaN
4 11 서울특별시 11110 종로구 1111010300 궁정동 NaN 19880423 NaN


행정동과 관할 법정동의 연결내용 조회하기

pdr.code_hdong_bdong() 명령으로 행정동과 관할 법정동의 연결내용 정보를 Pandas DataFrame 객체롤 생성하여 연결정보 변수에 할당합니다. head() 명령으로 데이터의 첫 5개 행을 출력합니다.

연결정보 = pdr.code_hdong_bdong()
연결정보.head()
시도코드 시도명 시군구코드 시군구명 행정동코드 읍면동명 법정동코드 동리명 생성일자 말소일자
0 11 서울특별시 11000 NaN 1100000000 NaN 1100000000 서울특별시 19880423 NaN
1 11 서울특별시 11110 종로구 1111000000 NaN 1111000000 종로구 19880423 NaN
2 11 서울특별시 11110 종로구 1111000000 NaN 1111090100 창신1동 19880423 19880423
3 11 서울특별시 11110 종로구 1111000000 NaN 1111090200 창신2동 19880423 19880423
4 11 서울특별시 11110 종로구 1111000000 NaN 1111090300 창신3동 19880423 19880423


(응용) 행정동 정자1동의 관할 법정동 찾기

행정동 기준으로 ‘경기도 성남시 분당구 정자1동’은 어떤 법정동을 관할하는지 확인해봅니다. 행정동코드 에서 읍면동명이 ‘정자1동’인 행을 조회하면 아래와 같이 같은 이름의 행정동이 전국에 두 곳이 있는 것을 알 수 있습니다.

행정동코드.loc[행정동코드['읍면동명']=='정자1동']
시도코드 시도명 시군구코드 시군구명 행정동코드 읍면동명 생성일자 말소일자
2834 41 경기도 41111 수원시 장안구 4111157100 정자1동 19900101 NaN
2998 41 경기도 41135 성남시 분당구 4113555000 정자1동 20010101 NaN


이 중 성남시 분당구에 속한 ‘정자2동’의 행정동코드인 ‘4113555000’를 hdongCode 변수에 할당합니다.

hdongCode = '4113555000'


연결정보에서 행정동코드가 hdongCode와 같은 행을 조회합니다. 조회 결과 ‘정자1동’의 관할 법정동은 ‘정자동’인 것을 알 수 있습니다.

연결정보.loc[연결정보['행정동코드']==hdongCode]
시도코드 시도명 시군구코드 시군구명 행정동코드 읍면동명 법정동코드 동리명 생성일자 말소일자
7767 41 경기도 41135 성남시 분당구 4113555000 정자1동 4113510300 정자동 20010101 NaN


참고

댓글남기기