파이썬 예제 부동산 실거래가 CSV 읽고 쓰기
by 뱁새유니버스1. 개요
안녕하세요! 뱁새유니버스입니다. 지난 시간에 부동산 실거래가를 공공데이터포털(data.go.kr)로부터 가져오는 것까지 해봤는데요. 이번 시간엔 dataframe으로 표현한 부동산 실거래가를 csv로 저장하고 csv를 읽고 쓰는 것까지 진행해보겠습니다. 외부에서 csv 파일형식으로 데이터를 받거나 저장할 때 많이 쓰입니다.
부동산실거래가를 가져오는 것은 아래 페이지에서 확인해보시기 바랍니다.
https://idealist.tistory.com/58
2. 내용
(1) CSV란 뭘까?
CSV(영어: comma-separated values)는 몇 가지 필드를 쉼표(,)로 구분한 텍스트 데이터 및 텍스트 파일입니다.
메모장이나 엑셀에서 읽을 수 있고 프로그램 개발을 실무에서 하시다 보면 많은 곳에서 csv 파일 형식을 많이 접할 수 있습니다.
(2) 부동산 실거래가를 csv로 저장하기
아래 코드 마지막 줄에서 df 변수에 담고 df.to_csv('propDataMap.csv')로 저장하면 csv가 저장되는 것을 확인할 수 있습니다.
import requests
import xmltodict
import pandas as pd
import json
from datetime import datetime
def get_lawd_cd(address):
url = "http://apis.data.go.kr/1741000/StanReginCd/getStanReginCdList"
key = "인증받은 decoding api키값"
params = {"serviceKey": key, "pageNo": "1", "numOfRows": "3", "type": "json", "locatadd_nm": address}
r = requests.get(url, params=params)
_json = r.json()
results = _json.get("StanReginCd")
if len(results) > 0:
return results[1].get("row", [])[0].get("region_cd")[0:5]
return None
LAWD_CD = get_lawd_cd("경기도 과천시")
DEAL_YMD = "202210"
key = "인증받은 decoding api키값"
url = "http://openapi.molit.go.kr:8081/OpenAPI_ToolInstallPackage/service/rest/RTMSOBJSvc/getRTMSDataSvcAptTrade"
params = {"serviceKey": key, "LAWD_CD": LAWD_CD, "DEAL_YMD": DEAL_YMD}
req = requests.get(url, params=params)
result = xmltodict.parse(req.text)
items = result.get("response").get("body").get("items").get("item")
jsonString = json.dumps(items) #list를 json방식으로 업데이트
df = pd.DataFrame(items)
display(df)
df.to_csv('propDataMap.csv')
그러면 jupyter notebook에서 아래와 같은 csv가 만들어지는 것을 확인할 수 있습니다.
(3) csv를 파이썬에서 읽기
아래 코드를 실행하면 csv를 파이썬에서 읽습니다.
#csv를 import한다.
import csv
#utf-8 인코딩 설정 및 해당 파일(propDataMap.csv) 읽기
file = open('propDataMap.csv', 'r', encoding='utf-8')
csvReader = csv.reader(file)
for line in csvReader:
print(line)
file.close()
결과값은 아래와 같습니다.
(4) csv를 파이썬에서 쓰기
file에 csv를 열기 위한 함수를 저장합니다. open함수에 첫번째 파라미터는 csv이고, 두번째 w는 write입니다. utf 8로 인코딩을 맞춰주고 실행합니다.
import csv
file = open('propDataMap.csv', 'w', encoding='utf-8')
writer = csv.writer(file)
writer.writerow(['6', '140,000', '중개거래', '2020', '2022', '부림동', '센트럴파크푸르지오써밋', '10', '22', '84.99', '경기 과천시', '96', '41290', '12', '', ''])
writer.writerow(['7', '130,000', '중개거래', '2020', '2022', '부림동', '센트럴파크푸르지오써밋', '10', '22', '84.99', '경기 과천시', '96', '41290', '12', '', ''])
file.close()
그러면 결과 값이 아래와 같이 나옵니다. wirte인 w값을 입력하면 기존 propDataMap.csv에 있던 5개 행이 사라지고 2개의 새로운 행이 추가됩니다.
그런데 csv를 다시 불러오니 기존에 있는 행이 다 날라가고 2개의 행만 있습니다.
밑에 계속해서 데이터를 추가하려면 append의 a로 두번째 파라미터 값을 변경해주면 됩니다.
이렇게요.
import csv
file = open('propDataMap.csv', 'a', encoding='utf-8', newline='')
writer = csv.writer(file)
writer.writerow(['6', '140,000', '중개거래', '2020', '2022', '부림동', '센트럴파크푸르지오써밋', '10', '22', '84.99', '경기 과천시', '96', '41290', '12', '', ''])
writer.writerow(['7', '130,000', '중개거래', '2020', '2022', '부림동', '센트럴파크푸르지오써밋', '10', '22', '84.99', '경기 과천시', '96', '41290', '12', '', ''])
file.close()
아래처럼 이어서 데이터가 적재되는 것을 확인하실 수 있습니다.
3. 마치며
이번 시간엔 부동산 실거래가를 csv 파일 형식으로 저장하고, 파이썬에서 csv 읽고 쓰는 것까지 해봤습니다.
질문이 있으시면 댓글 남겨주세요! 함께 공부합시다.
이 글을 보는 모든 분들 오늘 하루가 행복하시길 바랍니다.
감사합니다.
'IT > 파이썬' 카테고리의 다른 글
python folium 경기도 의왕시 2022년 부동산 실거래가 조회 및 위경도 표기를 통한 아파트 마커 실시간 데이터 표기 파이썬 폴리엄 (0) | 2022.12.08 |
---|---|
파이썬으로 현재 날짜 확인하기 import time localtime함수 strftime 함수 예제 (0) | 2022.12.03 |
파이썬 Python Folium으로 동탄인덕원선 인동선(인덕원~동탄선) 지도 시각화 그리기 (0) | 2022.11.29 |
FileNotFoundError: [Errno 2] No such file or directory 파이썬 절대경로 상대경로 os getcwd (0) | 2022.11.29 |
파이썬 지도 시각화 folium 오픈 라이브러리 사용해보기 예제 python 지도 만들기 (0) | 2022.11.22 |
블로그의 정보
가슴이 웅장해지는 모든것
뱁새유니버스