목록

'python' 82건

  • 맛집 정보 수집하기
    프로그래밍 언어/Python · 댓글
    네이버 지도에서 검색한 서울의 미쉐린 맛집을 CSV 파일로 저장하겠습니다. 크로미움 웹 브라우저의 개발자 도구의 인스펙트를 사용하여 네이버 지도 검색 결과룰 분석한 후, 이를 바탕으로 데이터 수집을 자동화하는 함수를 작성할 것입니다. 데이터 추출01 소스 코드 'step_1_3.py'를 실행하고 인스펙터에서 왼쪽 상단의 Pick locator 아이콘을 클릭합니다. 02 네이버 지도에서 검색 결과의 업체명을 클릭합니다. 인스펙터 하단 [Locator] 탭에 iframe 태그를 특정하고 내부의 요소를 제어하는 함수 frame_locator()가 포함된 코드가 생성됩니다.locator("iframe[title=\"Naver Place Search\"]").content_frame.get_by_role("but..
  • 맛집 검색 자동화하기
    프로그래밍 언어/Python · 댓글
    미쉐린 가이드에 소개된 적 있는 서울의 레스토랑을 검색하고 지도에 위치를 표시해 볼 것입니다. playwright 패키지와 크로미움 웹 브라우저를 사용하여 네이버 지도에서 맛집 검색을 자동화하는 코드를 작성합니다. 비주얼 스튜디오 코드에서 새로운 파일을 생성하고 파일명을 'step_1_2.py'로 변경한 다음 코드를 작성합니다. 01 새로 생성한 파일 'step_1_2.py'에 Playwright 객체를 생성하고 웹 브라우저를 실행하는 함수 run_playwright()를 작성합니다.from playwright.sync_api import Browser, Page, Playwright, sync_playwrightdef run_playwright(slow_mo: float = None) -> tuple[..
  • 맛집 탐색 자동화하기- 파이썬 패키지 준비하기
    프로그래밍 언어/Python · 댓글
    iframe은 HTML 문서 내에 삽입된 또 다른 HTML 문서입니다. 파이썬 패키지 준비하기pathlib 패키지를 사용하여 이번 장에서 사용할 폴더를 만들어 보겠습니다. 현재 작업 폴더를 'ch_12'이라고 가정합니다. 비주얼 스튜디오 코드에서 새로운 파일을 생성하고 파일명을 'step_1_1.py'로 수정합니다. 다음과 같이 폴더를 입력하고, 대화형 창에서 실행합니다. 현재 작업 폴더의 하위 경로에 'input', 'output' 폴더가 생성됩니다. ch_12/step_1_1.pyfrom pathlib import PathWORK_DIR = Path(__file__).parentIN_DIR, OUT_DIR = WORK_DIR / "input", WORK_DIR / "output"if __name__ ..
  • 단위 면적당 평균 실거래가 시각화하기
    프로그래밍 언어/Python · 댓글
    데이터 결합비주얼 스튜디오 코드에서 새로운 파일을 생성하고 파일명을 'step_3_3.py'로 변경합니다. 다음과 같이 코드를 입력하고 대화형 창에서 실행하면 'output' 폴더에 'step_3_3.geojson' 파일이 생성됩니다. ch_11/step_3_3.pyfrom pathlib import Pathimport geopandas as gpdimport pandas as pdfrom step_1_1 import OUT_DIRfrom step_2_4 import OUT_2_4from step_3_2 import OUT_3_2OUT_3_3 = OUT_DIR / f"{Path(__file__).stem}.geojson"def merge_dataFrame(): gdf_geo = gpd.read_fi..
  • GeoJSON으로 데이터 저장
    프로그래밍 언어/Python · 댓글
    비주얼 스튜디오 코드에서 새로운 파일을 생성하고 파일명을 'step_3_2.py'로 변경합니다. 다음 코드를 입력한 뒤, 대화형 창에서 실행하면 'output' 폴더에 행정구역 경계 데이터가 포함된 파일 'step_3_2.geojson'이 생성됩니다. ch_11/step_3_2.pyfrom pathlib import Pathfrom datakart import Sgisfrom step_1_1 import OUT_DIR # 이전에 작성한 모듈을 불러옵니다.OUT_3_2 = OUT_DIR / f"{Path(__file__).stem}.geojson"def adm_cd_to_geojson(adm_cd: str = None, low_search: str = "1") -> None: # 07 SGIS_KEY..
  • 행정구역 경계 시각화
    프로그래밍 언어/Python · 댓글
    지오데이터프레임의 함수 plot()을 사용하면 행정구역 경계 데이터를 간단히 시각화할 수 있습니다. 소스 코드를 다음과 같이 입력한 뒤, 대화형 창에서 실행합니다. 서울특별시의 시군구 단위 행정구역 경계가 표시된 지도가 출력됩니다.import geopandas as gpdfrom datakart import SgisSGIS_KEY, SGIS_SECRET = "서비스 ID", "보안 Key" # 통계지리정보서비스 APIsgis = Sgis(SGIS_KEY, SGIS_SECRET) # Sgis 객체resp: str = sgis.hadm_area(adm_cd="11", low_search="1") # 데이터 조회gdf_resp: gpd.GeoDataFrame = gpd.read_file(resp)gdf_res..
  • 행정구역 경계 표시하기
    프로그래밍 언어/Python · 댓글
    행정구역 경제 데이터 수집datakart 패키지의 함수 badm_area()는 매개변수로 행정구역 코드를 의미하는 adm_cd와 하위 통계 정보의 유무를 의미하는 low_search를 받아, 행정구역 데이터를 JSON 형식의 문자열로 반환합니다. 이때 하위 통계 정보가 있으면 시군구 단위로 경계 데이터를 구분합니다. 함수 badm_area()의 매개변수에는 다음과 같은 정보를 입력할 수 있습니다.adm_cdlow_search의미NoneNone전국 경계 데이터(시도 단위로 구분)"11""0"서울특별시 경계 데이터"11""1"서울특별시 경계 데이터(시군구 단위로 구분)"11""2"서울특별시 경계 데이터(읍면동 단위로 구분)"11010""0"서울특별시 종로구 데이터"11010""1"서울특별시 종로구 데이터(읍..
  • 단위 면적당 평균 실거래가 구하기
    프로그래밍 언어/Python · 댓글
    단위 면적당 평균 실거래가를 구하는 방법은 매우 싶습니다. 거래 금액은 전용 면적으로 나누면 끝입니다. 다만 앞서 소스 코드 'step_2_3.py'에서 정제한 데이터의 거래금액 열에 저장된 값은 문자열입니다. 나눗셈 연산을 적용하기 위해 거래금액 문자열에서 콤마(,)를 제거하고 부동소수점으로 형변환한 뒤, 데이터프레임에 면적당금액 열을 추가합니다.면적당 금액을 구했다면 지역 코드와 지역 주소명, 단위 면적당 평균 실거래가를 포함한 데이터프레임을 출력하기 위해 소스 코드 'step_2_1.py'의 df_sido_sgg를 불러옵니다. 단위 면적당 평균 실거래가를 구한 뒤 데이터프레임 df_sido_sgg에서 지역 코드와 지역 주소명을 병합할 것입니다.비주얼 스튜디오 코드에서 새로운 파일을 생성하고 파일명을..
  • 거래가 취소된 데이터 삭제
    프로그래밍 언어/Python · 댓글
    매매 계약이 해제된 아파트를 데이터프레임에서 삭제하기 위해 해제사유발생일 열에 날짜가 입력되어 있는 행을 슬라이싱하고, 데이터프레임에서 해체사유발생일 열을 제외할 것입니다.비주얼 스튜디오 코드에서 새로운 파일을 생성하고, 파일명을 'step_2_3.py'로 지정합니다. 다음과 같이 함수 api_trade_to_csv()를 작성하고 대화형 창에서 실행하면, 'output' 폴더에 'step_2_3.csv' 파일이 생성됩니다.from pathlib import Pathimport pandas as pdfrom datakart import Dakartfrom tqdm import tqdmfrom step_1 import OUT_DIRfrom step_2_1 import OUT_2_1OUT_2_3 = OUT_D..
  • 아파트 매매 실거래가 데이터 수집
    프로그래밍 언어/Python · 댓글
    국토교통부 아파트 매매 실거래가 자료 API는 지역코드와 계약년월을 입력하면 해당 지역과 기간의 아파트 매매 신고 상세정보를 조회합니다.Datagokr 객체의 함수 apt_trade()를 사용해서 서울특별시 강남구의 아파트 매매 실거래가 데이터를 불러오고, 필요한 열을 추출합니다. 비주얼 스튜디오 코드에서 새로운 파일을 생성하고 파일명을 'step_2_2.py'로 변경합니다. 다음과 같이 코드를 입력하고, 대화형 창에서 실행합니다. 2023년 12월에 거래된 서울특별시 강남구의 아파트 매매 거래 금액이 포함된 데이터프레임이 출력됩니다. ch_11/step_2_2.pyfrom datakart import Datagokrimport pandas as pdfrom step_2_1 import DATAGO_KE..
  • 법정동 데이터 수집하기
    프로그래밍 언어/Python · 댓글
    datakart 패키지의 Datagokr 클래스를 사용하여 법정동 데이터를 수집하는 함수를 만들어 봅시다. 이 함수는 법정동 데이터를 수집한 후 리스트 형식으로 반환합니다. 리스트에는 주소 코드가 음, 면, 동, 리 단위까지 포함되어 있으므로, 데이터를 정제해서 시, 군, 구 단위만 남기겠습니다.법정동 데이터 리스트를 데이터프레임으로 반환한 다음 읍, 면, 동, 리 단위 주소가 행을 추출하고, 시도, 시군구, 지역 주소명 열로 정리해 보겠습니다. 이렇게 정제한 데이터프레임은 CSV 파일로 저장할 것입니다. 비주얼 스튜디오 코드에서 새 파일을 생성하고, 파일명은 'step_2_1.py'로 저장합니다. 그리고 나서 다음 코드를 입력한 후, 대화형 창에서 실행하면 'output' 폴더에 서울특별시 지역에 속한..
  • 아파트 매매 실거래가 지도
    프로그래밍 언어/Python · 댓글
    파이썬 패키지 준비하기 pathlib 패키지pathlib 패키지를 사용하여 이번 장에서 사용할 폴더를 만들어 보겠습니다. 현재 작업 폴더를 'ch_11'이라고 가정합니다.비주얼 스튜디오 코드에서 새로운 파일을 생성하고 파일명을 'step_1_1.py'로 변경합니다. 그러고 나서 다음과 같이 코드를 입력하고, 대화형 창에서 실행합니다. 현재 작업 폴더의 하위 경로에 'input', 'output' 폴더가 생성됩니다. ch_11/step_1_1.pyfrom pathlib import PathWORK_DIR = Path(__file__).parentIN_DIR, OUT_DIR = WORK_DIR / "input", WORK_DIR / "output"if __name__ == "__main__": IN_D..

맛집 정보 수집하기

네이버 지도에서 검색한 서울의 미쉐린 맛집을 CSV 파일로 저장하겠습니다. 크로미움 웹 브라우저의 개발자 도구의 인스펙트를 사용하여 네이버 지도 검색 결과룰 분석한 후, 이를 바탕으로 데이터 수집을 자동화하는 함수를 작성할 것입니다. 데이터 추출01 소스 코드 'step_1_3.py'를 실행하고 인스펙터에서 왼쪽 상단의 Pick locator 아이콘을 클릭합니다. 02 네이버 지도에서 검색 결과의 업체명을 클릭합니다. 인스펙터 하단 [Locator] 탭에 iframe 태그를 특정하고 내부의 요소를 제어하는 함수 frame_locator()가 포함된 코드가 생성됩니다.locator("iframe[title=\"Naver Place Search\"]").content_frame.get_by_role("but..

맛집 검색 자동화하기

미쉐린 가이드에 소개된 적 있는 서울의 레스토랑을 검색하고 지도에 위치를 표시해 볼 것입니다. playwright 패키지와 크로미움 웹 브라우저를 사용하여 네이버 지도에서 맛집 검색을 자동화하는 코드를 작성합니다. 비주얼 스튜디오 코드에서 새로운 파일을 생성하고 파일명을 'step_1_2.py'로 변경한 다음 코드를 작성합니다. 01 새로 생성한 파일 'step_1_2.py'에 Playwright 객체를 생성하고 웹 브라우저를 실행하는 함수 run_playwright()를 작성합니다.from playwright.sync_api import Browser, Page, Playwright, sync_playwrightdef run_playwright(slow_mo: float = None) -> tuple[..

맛집 탐색 자동화하기- 파이썬 패키지 준비하기

iframe은 HTML 문서 내에 삽입된 또 다른 HTML 문서입니다. 파이썬 패키지 준비하기pathlib 패키지를 사용하여 이번 장에서 사용할 폴더를 만들어 보겠습니다. 현재 작업 폴더를 'ch_12'이라고 가정합니다. 비주얼 스튜디오 코드에서 새로운 파일을 생성하고 파일명을 'step_1_1.py'로 수정합니다. 다음과 같이 폴더를 입력하고, 대화형 창에서 실행합니다. 현재 작업 폴더의 하위 경로에 'input', 'output' 폴더가 생성됩니다. ch_12/step_1_1.pyfrom pathlib import PathWORK_DIR = Path(__file__).parentIN_DIR, OUT_DIR = WORK_DIR / "input", WORK_DIR / "output"if __name__ ..

단위 면적당 평균 실거래가 시각화하기

데이터 결합비주얼 스튜디오 코드에서 새로운 파일을 생성하고 파일명을 'step_3_3.py'로 변경합니다. 다음과 같이 코드를 입력하고 대화형 창에서 실행하면 'output' 폴더에 'step_3_3.geojson' 파일이 생성됩니다. ch_11/step_3_3.pyfrom pathlib import Pathimport geopandas as gpdimport pandas as pdfrom step_1_1 import OUT_DIRfrom step_2_4 import OUT_2_4from step_3_2 import OUT_3_2OUT_3_3 = OUT_DIR / f"{Path(__file__).stem}.geojson"def merge_dataFrame(): gdf_geo = gpd.read_fi..

GeoJSON으로 데이터 저장

비주얼 스튜디오 코드에서 새로운 파일을 생성하고 파일명을 'step_3_2.py'로 변경합니다. 다음 코드를 입력한 뒤, 대화형 창에서 실행하면 'output' 폴더에 행정구역 경계 데이터가 포함된 파일 'step_3_2.geojson'이 생성됩니다. ch_11/step_3_2.pyfrom pathlib import Pathfrom datakart import Sgisfrom step_1_1 import OUT_DIR # 이전에 작성한 모듈을 불러옵니다.OUT_3_2 = OUT_DIR / f"{Path(__file__).stem}.geojson"def adm_cd_to_geojson(adm_cd: str = None, low_search: str = "1") -> None: # 07 SGIS_KEY..

행정구역 경계 시각화

지오데이터프레임의 함수 plot()을 사용하면 행정구역 경계 데이터를 간단히 시각화할 수 있습니다. 소스 코드를 다음과 같이 입력한 뒤, 대화형 창에서 실행합니다. 서울특별시의 시군구 단위 행정구역 경계가 표시된 지도가 출력됩니다.import geopandas as gpdfrom datakart import SgisSGIS_KEY, SGIS_SECRET = "서비스 ID", "보안 Key" # 통계지리정보서비스 APIsgis = Sgis(SGIS_KEY, SGIS_SECRET) # Sgis 객체resp: str = sgis.hadm_area(adm_cd="11", low_search="1") # 데이터 조회gdf_resp: gpd.GeoDataFrame = gpd.read_file(resp)gdf_res..

행정구역 경계 표시하기

행정구역 경제 데이터 수집datakart 패키지의 함수 badm_area()는 매개변수로 행정구역 코드를 의미하는 adm_cd와 하위 통계 정보의 유무를 의미하는 low_search를 받아, 행정구역 데이터를 JSON 형식의 문자열로 반환합니다. 이때 하위 통계 정보가 있으면 시군구 단위로 경계 데이터를 구분합니다. 함수 badm_area()의 매개변수에는 다음과 같은 정보를 입력할 수 있습니다.adm_cdlow_search의미NoneNone전국 경계 데이터(시도 단위로 구분)"11""0"서울특별시 경계 데이터"11""1"서울특별시 경계 데이터(시군구 단위로 구분)"11""2"서울특별시 경계 데이터(읍면동 단위로 구분)"11010""0"서울특별시 종로구 데이터"11010""1"서울특별시 종로구 데이터(읍..

단위 면적당 평균 실거래가 구하기

단위 면적당 평균 실거래가를 구하는 방법은 매우 싶습니다. 거래 금액은 전용 면적으로 나누면 끝입니다. 다만 앞서 소스 코드 'step_2_3.py'에서 정제한 데이터의 거래금액 열에 저장된 값은 문자열입니다. 나눗셈 연산을 적용하기 위해 거래금액 문자열에서 콤마(,)를 제거하고 부동소수점으로 형변환한 뒤, 데이터프레임에 면적당금액 열을 추가합니다.면적당 금액을 구했다면 지역 코드와 지역 주소명, 단위 면적당 평균 실거래가를 포함한 데이터프레임을 출력하기 위해 소스 코드 'step_2_1.py'의 df_sido_sgg를 불러옵니다. 단위 면적당 평균 실거래가를 구한 뒤 데이터프레임 df_sido_sgg에서 지역 코드와 지역 주소명을 병합할 것입니다.비주얼 스튜디오 코드에서 새로운 파일을 생성하고 파일명을..

거래가 취소된 데이터 삭제

매매 계약이 해제된 아파트를 데이터프레임에서 삭제하기 위해 해제사유발생일 열에 날짜가 입력되어 있는 행을 슬라이싱하고, 데이터프레임에서 해체사유발생일 열을 제외할 것입니다.비주얼 스튜디오 코드에서 새로운 파일을 생성하고, 파일명을 'step_2_3.py'로 지정합니다. 다음과 같이 함수 api_trade_to_csv()를 작성하고 대화형 창에서 실행하면, 'output' 폴더에 'step_2_3.csv' 파일이 생성됩니다.from pathlib import Pathimport pandas as pdfrom datakart import Dakartfrom tqdm import tqdmfrom step_1 import OUT_DIRfrom step_2_1 import OUT_2_1OUT_2_3 = OUT_D..

아파트 매매 실거래가 데이터 수집

국토교통부 아파트 매매 실거래가 자료 API는 지역코드와 계약년월을 입력하면 해당 지역과 기간의 아파트 매매 신고 상세정보를 조회합니다.Datagokr 객체의 함수 apt_trade()를 사용해서 서울특별시 강남구의 아파트 매매 실거래가 데이터를 불러오고, 필요한 열을 추출합니다. 비주얼 스튜디오 코드에서 새로운 파일을 생성하고 파일명을 'step_2_2.py'로 변경합니다. 다음과 같이 코드를 입력하고, 대화형 창에서 실행합니다. 2023년 12월에 거래된 서울특별시 강남구의 아파트 매매 거래 금액이 포함된 데이터프레임이 출력됩니다. ch_11/step_2_2.pyfrom datakart import Datagokrimport pandas as pdfrom step_2_1 import DATAGO_KE..

법정동 데이터 수집하기

datakart 패키지의 Datagokr 클래스를 사용하여 법정동 데이터를 수집하는 함수를 만들어 봅시다. 이 함수는 법정동 데이터를 수집한 후 리스트 형식으로 반환합니다. 리스트에는 주소 코드가 음, 면, 동, 리 단위까지 포함되어 있으므로, 데이터를 정제해서 시, 군, 구 단위만 남기겠습니다.법정동 데이터 리스트를 데이터프레임으로 반환한 다음 읍, 면, 동, 리 단위 주소가 행을 추출하고, 시도, 시군구, 지역 주소명 열로 정리해 보겠습니다. 이렇게 정제한 데이터프레임은 CSV 파일로 저장할 것입니다. 비주얼 스튜디오 코드에서 새 파일을 생성하고, 파일명은 'step_2_1.py'로 저장합니다. 그리고 나서 다음 코드를 입력한 후, 대화형 창에서 실행하면 'output' 폴더에 서울특별시 지역에 속한..

아파트 매매 실거래가 지도

파이썬 패키지 준비하기 pathlib 패키지pathlib 패키지를 사용하여 이번 장에서 사용할 폴더를 만들어 보겠습니다. 현재 작업 폴더를 'ch_11'이라고 가정합니다.비주얼 스튜디오 코드에서 새로운 파일을 생성하고 파일명을 'step_1_1.py'로 변경합니다. 그러고 나서 다음과 같이 코드를 입력하고, 대화형 창에서 실행합니다. 현재 작업 폴더의 하위 경로에 'input', 'output' 폴더가 생성됩니다. ch_11/step_1_1.pyfrom pathlib import PathWORK_DIR = Path(__file__).parentIN_DIR, OUT_DIR = WORK_DIR / "input", WORK_DIR / "output"if __name__ == "__main__": IN_D..