거래가 취소된 데이터 삭제
매매 계약이 해제된 아파트를 데이터프레임에서 삭제하기 위해 해제사유발생일 열에 날짜가 입력되어 있는 행을 슬라이싱하고, 데이터프레임에서 해체사유발생일 열을 제외할 것입니다.
비주얼 스튜디오 코드에서 새로운 파일을 생성하고, 파일명을 'step_2_3.py'로 지정합니다. 다음과 같이 함수 api_trade_to_csv()를 작성하고 대화형 창에서 실행하면, 'output' 폴더에 'step_2_3.csv' 파일이 생성됩니다.
from pathlib import Path
import pandas as pd
from datakart import Dakart
from tqdm import tqdm
from step_1 import OUT_DIR
from step_2_1 import OUT_2_1
OUT_2_3 = OUT_DIR / f"{Path(__file__).stem}.csv"
def api_trade_to_csv(): # 10
df_addr = pd.read_csv(OUT_2_1, dtype="string") # 주소 데이터 # 11
addr_list = df_addr.values.tolist() # 데이터프레임을 리스트로 변환 # 12
DATAGO_KEY = "94e02bd855e778175817bc4c53f5c2cda13064412f4f2fde03b52f4b932a53f0"
datagokr = Dakart(DATAGO_KEY) # Datagokr 객체 생성
yyyymm_range = [f"2023[m:02]" for m in range(1, 13)] # 계약년월 생성 # 16
result = []
with tqdm(total=len(addr_list)) as pbar: # 진행 표시줄 생성
for code, addr in addr_list: # 주소 코드와 주소 이름 # 19
for yyymm in yyyymm_range: # 계약년월 반복 처리
pbar.set_description(f"[{addr:20}][{code}][{yyymm}]") # 21
resp = datagokr.apt_trade(code, yyyymm) # 실거래가 조회 # 22
result += resp # 실거래가 조회 결괏값을 임시 변수에 저장
pbar.update() # 진행 표시줄 횟수 업데이트
df_raw = pd.DataFrame(result) # 아파트 매매 실거래가를 데이터프레임으로 생성 # 26
df_filter = df_raw.filter(["sggCd", "dealYear", "dealMonth", "dealingGbn", "umdNm",
"aptNm", "excluUseAr", "dealAmount", "cdealDay"])
df_filter.columns = ["지역코드", "계약년도", "계약월", "거래유형", "법정동",
"단지명", "전용면적", "거래금액", "해제사유발생일"] # 30
f_is_real_deal = df_filter["해제사유발생일"].isna() # 데이터가 있는지 여부 판단 # 31
df_real = df_filter.loc[f_is_real_deal] # 취소되지 않은 데이터 추출
df_real = df_real.drop(columns=["해제사유발생일"]) # 해제사유발생일 열 제거 # 33
df_real.to_csv(OUT_2_3, index=False) # CSV 파일로 저장
if __name__ == "__main__":
api_trade_to_csv()
실행 결과
지역코드,계약년도,계약월,거래유형,법정동,단지명,전용면적,거래금액
11680,2023,1,중개거래,일원동,목련타운,99.79,"175,000"
11680,2023,1,중개거래,개포동,삼익대청아파트,39.53,"97,000"
...생략...
10 아파트 매매 실거래가 데이터를 수집하고 CSV 파일로 저장하는 함수 aot,_rade 1o.c3w()를 정의합니다.
11 함수 read_csV()를 사용하여 CSV 형식의 시군구 단위 주소를 데이터프레임으로 변환합니다. 이때 매개변수 ctyce에 'string'을 전달하여 모든 데이터를 문자열로 처리합니다.
12 함수 values.tolist ()를 사용하여 데이터프레임을 리스트로 변환합니다.
16 2023년도 데이터를 수집하기 위해 계약년월 리스트를 생성합니다.
19 변수 addr list에 저장된 주소 데이터를 한 행씩 반복 처리합니다.
21 [주소이름][주소코드][계약년월] 형식으로 진행 표시 메시지를 업데이트합니다.
22 Datagokr 객체의 함수 apt_trade()를 사용하여 아파트 매매 실거래가 데이터를 조회합니다.
26~30 데이터를 데이터프레임으로 변환하고 함수 flter()를 사용하여 필요한 열 추출한 뒤, columns 속성에 리스트 타입으로 열 이름을 저장합니다.
31 함수 isna ()를 사용해 해제사유발생일 열에 데이터가 없으면 True, 있으면 False를 반환합니다.
33 함수 drop ()을 사용하여 해제사유발생일 열을 삭제합니다. 이때 매개변수 coumns에 삭제할 열을 리스트 타입으로 전달합니다.
서울특별시 강남구의 아파트 매매 실거래가를 수집하고 필요한 데이트를 추출하여 정제했습니다. 실행 결과로 생성된 파일에는 전용 면적과 거래 금액이 포함되어 있습니다.
'프로그래밍 언어 > Python' 카테고리의 다른 글
| 행정구역 경계 표시하기 (0) | 2026.06.10 |
|---|---|
| 단위 면적당 평균 실거래가 구하기 (0) | 2026.06.07 |
| 아파트 매매 실거래가 데이터 수집 (0) | 2026.06.01 |
| 법정동 데이터 수집하기 (0) | 2026.05.29 |
| 아파트 매매 실거래가 지도 (0) | 2026.05.26 |