국토교통부 부동산 실거래 데이터 조회하기


PNG


참고


국토교통부 실거래가 정보 조회 서비스

서비스명 상품유형 거래유형
아파트매매 실거래 상세 자료 조회 아파트 매매
아파트 전월세 자료 조회 아파트 전월세
아파트 분양권전매 신고 자료 조회 분양입주권 매매
오피스텔 매매 신고 조회 오피스텔 매매
오피스텔 전월세 신고 조회 오피스텔 전월세
연립다세대 매매 실거래자료 조회 연립다세대 매매
연립다세대 전월세 실거래자료 조회 연립다세대 전월세
단독/다가구 매매 실거래 조회 단독다가구 매매
단독/다가구 전월세 자료 조회 단독다가구 전월세
토지 매매 신고 조회 토지 매매
상업업무용 부동산 매매 신고 자료 조회 상업업무용 매매
공장 및 창고 등 부동산 매매 신고 자료 조회 공장창고등 매매


Python 라이브러리 PublicDataReader 설치하기

터미널에서 pip로 다음과 같이 PublicDataReader의 최신버전을 설치합니다.

pip install --upgrade PublicDataReader


설치한 라이브러리를 임포트하고 관련 정보 확인하기

# 1. 라이브러리 임포트하기
import PublicDataReader as pdr
print(pdr.__version__)
1.0.0


OpenAPI 서비스 키 입력하기

공공 데이터 포털에서 발급받은 서비스 키를 복사하여 다음과 같이 serviceKey에 문자열로 할당해줍니다. OpenAPI 서비스 키 발급 방법에 대해 궁금하신 분들은 구글에 ‘공공 데이터 포털 Open API 사용법‘을 검색하시면 여러 문서들을 참조하실 수 있습니다. 검색 후 가장 상단에 있는 이 블로그를 참조하셔도 됩니다.


# 2. 공공 데이터 포털 OpenAPI 서비스 인증키 입력하기
serviceKey = "공공 데이터 포털에서 발급받은 서비스 키"


데이터 조회 세션 만들기

다음과 같이 발급받은 serviceKey 값을 이용해 부동산 실거래가 데이터를 조회할 ts 세션을 만들어줍니다. debug의 값을 True로 입력하면 아래와 같은 메시지를 확인할 수 있습니다. 메시지 출력을 원치 않는 경우 False를 입력하면 됩니다. 본 라이브러리를 정상적으로 이용하기 위해서는 국토교통부 실거래가 정보 조회 서비스에 대한 OpenAPI 활용신청을 반드시 완료해야합니다.

# 3. 국토교통부 실거래가 정보 조회 OpenAPI 세션 정의하기
# debug: True이면 모든 메시지 출력, False이면 오류 메시지만 출력 (기본값: False)
ts = pdr.Transaction(serviceKey, debug=True)
[INFO] 아파트 매매 조회 서비스 정상 - (00) NORMAL SERVICE.
[INFO] 아파트 전월세 조회 서비스 정상 - (00) NORMAL SERVICE.
[INFO] 오피스텔 매매 조회 서비스 정상 - (00) NORMAL SERVICE.
[INFO] 오피스텔 전월세 조회 서비스 정상 - (00) NORMAL SERVICE.
[INFO] 단독다가구 매매 조회 서비스 정상 - (00) NORMAL SERVICE.
[INFO] 단독다가구 전월세 조회 서비스 정상 - (00) NORMAL SERVICE.
[INFO] 연립다세대 매매 조회 서비스 정상 - (00) NORMAL SERVICE.
[INFO] 연립다세대 전월세 조회 서비스 정상 - (00) NORMAL SERVICE.
[INFO] 상업업무용 매매 조회 서비스 정상 - (00) NORMAL SERVICE.
[INFO] 토지 매매 조회 서비스 정상 - (00) NORMAL SERVICE.
[INFO] 분양입주권 매매 조회 서비스 정상 - (00) NORMAL SERVICE.


지역코드 검색하기

아래와 같이 PublicDataReadercode_bdong() 메서드를 호출하면 전국의 지역코드를 DataFrame 형태로 확인할 수 있습니다.

# 4. 지역코드(시군구코드) 검색하기
sigunguName = "분당구"                                  # 시군구코드: 41135
code = pdr.code_bdong()
code.loc[(code['시군구명'].str.contains(sigunguName, na=False)) &
         (code['읍면동명'].isna())]
시도코드 시도명 시군구코드 시군구명 법정동코드 읍면동명 동리명 생성일자 말소일자
5133 41 경기도 41135 성남시 분당구 4113500000 NaN NaN 19910916 NaN

부동산 실거래가 조회하기

prod에 부동산 상품 종류를, trans에 부동산 거래 유형을 각각 입력하고, sigunguCodeyearMonth에 지역코드와 년월 정보를 입력합니다. 이후 위에서 정의한 데이터 조회 세션인 tsread_data 메서드를 호출하여 실거래가를 DataFrame 형태로 조회합니다.

# 5. 지역, 월 별 데이터 프레임 만들기
prod="아파트"                                           # 부동산 상품 종류 (ex. 아파트, 오피스텔, 단독다가구 등)
trans="매매"                                            # 부동산 거래 유형 (ex. 매매, 전월세)
sigunguCode="41135"
yearMonth="202101"

df = ts.read_data(prod, trans, sigunguCode, yearMonth)
df.head()
지역코드 도로명 법정동 지번 아파트 건축년도 전용면적 거래금액 도로명건물본번호코드 도로명건물부번호코드 도로명시군구코드 도로명일련번호코드 도로명지상지하코드 도로명코드 법정동본번코드 법정동부번코드 법정동시군구코드 법정동읍면동코드 법정동지번코드 일련번호 거래유형 중개사소재지 해제사유발생일 해제여부
0 41135 수내로 분당동 38 샛별마을(우방) 1994 8 84.99 2021 1 7 135,000 00181 00000 41135 01 0 3180039 0038 0000 41135 10100 1 41135-21
1 41135 수내로 분당동 38 샛별마을(우방) 1994 4 84.99 2021 1 8 132,500 00181 00000 41135 01 0 3180039 0038 0000 41135 10100 1 41135-21
2 41135 장안로41번길 분당동 66 장안타운(건영) 1993 17 162.85 2021 1 8 129,000 00013 00000 41135 01 0 4340380 0066 0000 41135 10100 1 41135-32
3 41135 분당로 분당동 34 샛별마을(라이프) 1992 6 126.415 2021 1 22 153,000 00190 00000 41135 01 0 3180026 0034 0000 41135 10100 1 41135-19
4 41135 수내로 분당동 39 샛별마을(삼부) 1992 6 69.96 2021 1 23 107,000 00201 00000 41135 01 0 3180039 0039 0000 41135 10100 1 41135-20


특정 기간 동안의 실거래가를 조회하기

prod에 부동산 상품 종류를, trans에 부동산 거래 유형을 각각 입력하고, sigunguCode에 지역코드를 입력합니다. 이어서 startYearMonthendYearMonth에 조회 시작년월 및 조회 종료년월을 입력합니다. 이후 위에서 정의한 데이터 조회 세션인 tscollect_data 메서드를 호출하여 특정 기간 동안의 실거래가를 DataFrame 형태로 조회합니다.

# 6. 지역, 기간 별 데이터 프레임 만들기
prod="아파트"                                           # 부동산 상품 종류 (ex. 아파트, 오피스텔, 단독다가구 등)
trans="매매"                                            # 부동산 거래 유형 (ex. 매매, 전월세)
sigunguCode="41135"
startYearMonth="202101"
endYearMonth="202111"

df = ts.collect_data(prod, trans, sigunguCode, startYearMonth, endYearMonth)
df.head()
[INFO] 아파트 매매 202101 조회 시작
[INFO] 아파트 매매 202102 조회 시작
[INFO] 아파트 매매 202103 조회 시작
[INFO] 아파트 매매 202104 조회 시작
[INFO] 아파트 매매 202105 조회 시작
[INFO] 아파트 매매 202106 조회 시작
[INFO] 아파트 매매 202107 조회 시작
[INFO] 아파트 매매 202108 조회 시작
[INFO] 아파트 매매 202109 조회 시작
[INFO] 아파트 매매 202110 조회 시작
[INFO] 아파트 매매 202111 조회 시작
지역코드 도로명 법정동 지번 아파트 건축년도 전용면적 거래금액 도로명건물본번호코드 도로명건물부번호코드 도로명시군구코드 도로명일련번호코드 도로명지상지하코드 도로명코드 법정동본번코드 법정동부번코드 법정동시군구코드 법정동읍면동코드 법정동지번코드 일련번호 거래유형 중개사소재지 해제사유발생일 해제여부
0 41135 수내로 분당동 38 샛별마을(우방) 1994 8 84.99 2021 1 7 135,000 00181 00000 41135 01 0 3180039 0038 0000 41135 10100 1 41135-21
1 41135 수내로 분당동 38 샛별마을(우방) 1994 4 84.99 2021 1 8 132,500 00181 00000 41135 01 0 3180039 0038 0000 41135 10100 1 41135-21
2 41135 장안로41번길 분당동 66 장안타운(건영) 1993 17 162.85 2021 1 8 129,000 00013 00000 41135 01 0 4340380 0066 0000 41135 10100 1 41135-32
3 41135 분당로 분당동 34 샛별마을(라이프) 1992 6 126.415 2021 1 22 153,000 00190 00000 41135 01 0 3180026 0034 0000 41135 10100 1 41135-19
4 41135 수내로 분당동 39 샛별마을(삼부) 1992 6 69.96 2021 1 23 107,000 00201 00000 41135 01 0 3180039 0039 0000 41135 10100 1 41135-20


법정동명 법정구코드
0 경기도 성남시 분당구 41135


전체 코드 정리

# 1. 라이브러리 임포트하기
import PublicDataReader as pdr
print(pdr.__version__)

# 2. 공공 데이터 포털 OpenAPI 서비스 인증키 입력하기
serviceKey = "공공 데이터 포털에서 발급받은 서비스 키"

# 3. 국토교통부 실거래가 정보 조회 OpenAPI 세션 정의하기
# debug: True이면 모든 메시지 출력, False이면 오류 메시지만 출력 (기본값: False)
ts = pdr.Transaction(serviceKey, debug=True)

# 4. 지역코드(시군구코드) 검색하기
sigunguName = "분당구"                                  # 시군구코드: 41135
code = pdr.code_bdong()
code.loc[(code['시군구명'].str.contains(sigunguName, na=False)) &
         (code['읍면동명'].isna())]

# 5. 지역, 월 별 데이터 프레임 만들기
prod="아파트"                                           # 부동산 상품 종류 (ex. 아파트, 오피스텔, 단독다가구 등)
trans="매매"                                            # 부동산 거래 유형 (ex. 매매, 전월세)
sigunguCode="41135"
yearMonth="202101"

df = ts.read_data(prod, trans, sigunguCode, yearMonth)
df.head()

# 6. 지역, 기간 별 데이터 프레임 만들기
prod="아파트"                                           # 부동산 상품 종류 (ex. 아파트, 오피스텔, 단독다가구 등)
trans="매매"                                            # 부동산 거래 유형 (ex. 매매, 전월세)
sigunguCode="41135"
startYearMonth="202101"
endYearMonth="202111"

df = ts.collect_data(prod, trans, sigunguCode, startYearMonth, endYearMonth)
df.head()


참고

댓글남기기