파이썬으로 법정동코드와 행정동코드 조회하는 방법
파이썬 PublicDataReader 라이브러리를 이용하면 법정동코드와 행정동코드를 쉽게 조회할 수 있습니다. 또, 행정동과 관할 법정동의 연결내용도 확인 가능합니다.
행정동과 법정동의 차이
공공 데이터를 조사할 때, 시도/시군구에 속한 동의 표기가 여러 가지가 있음을 알 수 있습니다. 예를 들어, ‘행정안전부 주민등록인구현황 행정구역(읍면동)별/5세별 주민등록인구(2011년~)’ 데이터에서는 동을 행정동으로 구분하고 있지만, ‘국토교통부 실거래가 공개시스템‘에서 제공하는 부동산 실거래가 데이터에서는 동을 법정동으로 구분하고 있습니다.
법정동은 지적도와 주소 등 모든 법적 업무에 사용되는 공식 행정구역 명칭입니다. 행정동은 행정기관들이 주민 수, 면적 등을 고려해 행정 편의를 위해 설정한 행정구역입니다. 일반적으로 동사무소나 주민센터처럼 불리는 행정기관은 행정동마다 한 곳씩 설치되어 있습니다.
- 행정동: 법정동을 행정상으로 관할하는 행정기관(읍면동) 명칭과 동일
- ※「행정동코드」와「주민등록 행정기관코드(이하, 행정기관코드)」는 동일한 용어임
- (예시) 경기도 성남시 분당구 정자1동
- 법정동: 공부상의 법정주소로서 문서에 표기되거나 주소에 사용
- (예시) 경기도 성남시 분당구 정자동
한 개의 행정동은 여러 개의 법정동으로 나뉘어져 있거나, 한 개의 법정동은 여러 개의 행정동으로 나뉘어져 있을 수 있습니다. 따라서, 다른 동 분류 체계를 가진 데이터를 동을 기준으로 병합하고자 할 때는 각각의 행정동이 어떤 법정동을 관할하고 있는지에 대한 정보가 필요합니다.
PublicDataReader
PublicDataReader는 공공 데이터를 자동으로 조회할 수 있는 파이썬 라이브러리입니다. 이 라이브러리로 공공데이터포털과 국가통계포털(KOSIS)과 같이 오픈 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 | 1100000000 | 19880423 | |||
1 | 11 | 서울특별시 | 11110 | 종로구 | 1111000000 | 19880423 | ||
2 | 11 | 서울특별시 | 11110 | 종로구 | 1111051000 | 청운동 | 19880423 | 20081101 |
3 | 11 | 서울특별시 | 11110 | 종로구 | 1111051500 | 청운효자동 | 20081101 | |
4 | 11 | 서울특별시 | 11110 | 종로구 | 1111052000 | 효자동 | 19880423 | 20081101 |
법정동코드 조회하기
pdr.code_bdong()
명령으로 법정동코드 정보를 Pandas DataFrame 객체롤 생성하여 법정동코드
변수에 할당합니다. head()
명령으로 데이터의 첫 5개 행을 출력합니다.
법정동코드 = pdr.code_bdong()
법정동코드.head()
시도코드 | 시도명 | 시군구코드 | 시군구명 | 법정동코드 | 읍면동명 | 동리명 | 생성일자 | 말소일자 | |
---|---|---|---|---|---|---|---|---|---|
0 | 11 | 서울특별시 | 11000 | 1100000000 | 19880423 | ||||
1 | 11 | 서울특별시 | 11110 | 종로구 | 1111000000 | 19880423 | |||
2 | 11 | 서울특별시 | 11110 | 종로구 | 1111010100 | 청운동 | 19880423 | ||
3 | 11 | 서울특별시 | 11110 | 종로구 | 1111010200 | 신교동 | 19880423 | ||
4 | 11 | 서울특별시 | 11110 | 종로구 | 1111010300 | 궁정동 | 19880423 |
행정동과 관할 법정동의 연결내용 조회하기
pdr.code_hdong_bdong()
명령으로 행정동과 관할 법정동의 연결내용 정보를 Pandas DataFrame 객체롤 생성하여 연결정보
변수에 할당합니다. head()
명령으로 데이터의 첫 5개 행을 출력합니다.
연결정보 = pdr.code_hdong_bdong()
연결정보.head()
시도코드 | 시도명 | 시군구코드 | 시군구명 | 행정동코드 | 읍면동명 | 법정동코드 | 동리명 | 생성일자 | 말소일자 | |
---|---|---|---|---|---|---|---|---|---|---|
0 | 11 | 서울특별시 | 11000 | 1100000000 | 1100000000 | 서울특별시 | 19880423 | |||
1 | 11 | 서울특별시 | 11110 | 종로구 | 1111000000 | 1111000000 | 종로구 | 19880423 | ||
2 | 11 | 서울특별시 | 11110 | 종로구 | 1111000000 | 1111090100 | 창신1동 | 19880423 | 19880423 | |
3 | 11 | 서울특별시 | 11110 | 종로구 | 1111000000 | 1111090200 | 창신2동 | 19880423 | 19880423 | |
4 | 11 | 서울특별시 | 11110 | 종로구 | 1111000000 | 1111090300 | 창신3동 | 19880423 | 19880423 |
(응용) 행정동 정자1동의 관할 법정동 찾기
행정동 기준으로 ‘경기도 성남시 분당구 정자1동’은 어떤 법정동을 관할하는지 확인해봅니다. 행정동코드
에서 읍면동명이 ‘정자1동’인 행을 조회하면 아래와 같이 같은 이름의 행정동이 전국에 두 곳이 있는 것을 알 수 있습니다.
행정동코드.loc[행정동코드['읍면동명']=='정자1동']
시도코드 | 시도명 | 시군구코드 | 시군구명 | 행정동코드 | 읍면동명 | 생성일자 | 말소일자 | |
---|---|---|---|---|---|---|---|---|
2834 | 41 | 경기도 | 41111 | 수원시 장안구 | 4111157100 | 정자1동 | 19900101 | |
2998 | 41 | 경기도 | 41135 | 성남시 분당구 | 4113555000 | 정자1동 | 20010101 |
이 중 성남시 분당구에 속한 ‘정자2동’의 행정동코드인 ‘4113555000’를 hdongCode
변수에 할당합니다.
hdongCode = '4113555000'
연결정보
에서 행정동코드가 hdongCode
와 같은 행을 조회합니다. 조회 결과 ‘정자1동’의 관할 법정동은 ‘정자동’인 것을 알 수 있습니다.
연결정보.loc[연결정보['행정동코드']==hdongCode]
시도코드 | 시도명 | 시군구코드 | 시군구명 | 행정동코드 | 읍면동명 | 법정동코드 | 동리명 | 생성일자 | 말소일자 | |
---|---|---|---|---|---|---|---|---|---|---|
7767 | 41 | 경기도 | 41135 | 성남시 분당구 | 4113555000 | 정자1동 | 4113510300 | 정자동 | 20010101 |
참고
- PublicDataReader 깃허브 저장소
- PublicDataReader 사용자 모임
- 행정안전부 - 주민등록,인감,행정사
- 연합뉴스 - ‘한 동네, 두 이름’…헷갈리는 행정동·법정동
댓글남기기