XML 파일을 pandas 데이터프레임으로 만들기
🧑🏻💻 코드 해석
- url 변수에 주어진 URL로 HTTP 요청을 보내고, 그에 대한 응답을 response 변수에 저장
- ET.fromstring(response.content)를 사용하여 response 변수에 저장된 XML 데이터를 ElementTree 객체로 파싱
- data_list라는 빈 리스트를 만들기
- >> 이 리스트는 나중에 데이터프레임을 만들기 위해 각 행을 딕셔너리 형태로 담을 것
- root.findall('.//item')를 사용하여 XML 데이터에서 'item'라는 태그의 모든 요소들을 찾기
- 각 item 태그에서 필요한 정보를 추출하여, data 딕셔너리에 저장
- data_list에 모든 행에 해당하는 딕셔너리들이 저장됨
- pd.DataFrame(data_list)를 호출하여 'data_list'를 활용하여 데이터프레임을 생성
import pandas as pd
import xml.etree.ElementTree as ET
import requests
url = "http://openapi.molit.go.kr/OpenAPI_ToolInstallPackage/service/rest/RTMSOBJSvc/getRTMSDataSvcAptTradeDev?serviceKey=bQ%2BkA%2BJkKjR0%2B08rFC7rRQBLEqB%2B9XsQl3PHQzXB%2BYlOhAeN01aylxCYkmPyQNfl93rWFZD0AosC9bI7RYV0%2Fw%3D%3D&pageNo=1&numOfRows=10&LAWD_CD=11110&DEAL_YMD=201512"
response = requests.get(url)
root = ET.fromstring(response.content)
data_list = []
for item in root.findall('.//item'):
data = {}
data['거래금액'] = item.find('거래금액').text
data['건축연도'] = item.find('건축년도').text
data['법정동'] = item.find('법정동').text
data['아파트'] = item.find('아파트').text
data['층'] = item.find('층').text
data['전용면적'] = item.find('전용면적').text
data_list.append(data)
df = pd.DataFrame(data_list)
df
결과
728x90
'Python > Pandas' 카테고리의 다른 글
[pandas] 결측치 처리하기 (0) | 2023.08.09 |
---|---|
[pandas] 날짜 데이터 다루기 (0) | 2023.08.09 |
[API 다루기] XML 데이터를 pandas 데이터프레임으로 (0) | 2023.08.07 |
[API 다루기] JSON 데이터를 pandas 데이터프레임으로 (0) | 2023.08.07 |
[Django] 엑셀 데이터 출력 페이지 만들기(부록) - 결과값을 표로 깔끔하게 보여주기(pandas dataframe > django) (0) | 2023.08.03 |