[Pandas] lambda, map, apply
·
Python/Python 기초문법
lambda() lambda 함수는 함수의 선언과 함수 내의 처리를 한 줄로 변환하는 식 lambda_square = lambda x : x ** 2 lambde_square(6) -------------------------------------- #result 36 map() lambda 식을 이용할 때, 인자 값이 여러개일 경우 map()함수를 결합하여 사용 a = [1, 2, 3, 4, 5, 6] squares = map(lambda x : x ** 2, a) list(squares) --------------------------------------- # result [1, 4, 9, 16, 25] apply() 행 단위로 연산할 때, apply() 함수 사용 예시) titanic 데이터에서 ..
[Python] 문자열 포매팅
·
Python/Python 기초문법
1. 문자열 포매팅 %d는 정수, %s는 문자 number = 3 day = "three" "I ate %d apples. so I was sick for %s days." %(number, day) --------------------------------------------------------------- 'I ate 3 apples. so I was sick for three days.' 2. f 문자열 포매팅 number = 3 day = "three" >>> f'I ate {number} apples. so I was {day} days.' --------------------------------------------------- 'I ate 3 apples. so I was sick fo..
api 크롤링 다중데이터 수집
·
Python/크롤링
서울열린데이터 광장에서 api 크롤링을 할 때, 한번에 1천건의 데이터만 불러올 수 있다. 많은 데이터가 필요하면 반복문을 써서 데이터를 수집해야 한다. http://openapi.seoul.go.kr:8088/(인증키)/xml/tbLnOpendataRtmsV/1/5/ 위 URL에서 /1/5 부분이 데이터 수를 결정하는하는 것이기 때문에 해당 위치의 숫자만 바꿔주면 된다. http://openapi.seoul.go.kr:8088/(인증키)/json/tbLnOpendataRtmsV/1/1000/ http://openapi.seoul.go.kr:8088/(인증키)/json/tbLnOpendataRtmsV/1001/2000/ . . . 1. 우선 해당 URL을 생성하기 위해 반복문을 만든다. for i in ..
api 크롤링
·
Python/크롤링
서울열린데이터 광장에서 서울시 실거래가 정보 api를 가져온다 1. Open API에서 샘플 URL을 가져오고, 인증키 부분에 인증키를 넣는다 from dotenv import load_dotenv import os load_dotenv() SERVICE_KEY = os.getenv('SEORUL_SERVICE_KEY') # env파일에서 가져옴 인증키(환경변수 설정해서 인증키 숨김) URL = f'http://openapi.seoul.go.kr:8088/{SERVICE_KEY}/json/tbLnOpendataRtmsV/1/5/' 2. HTTP 요청을 보내고 응답으로 받은 JSON 데이터를 파싱 import requests import json import pandas as pd req = request..
환경변수 설정해서 api 인증키 숨기기
·
Python/크롤링
1. 우선 아래의 사전작업을 진행해준다. 프로젝트 폴더 내에 .env 파일 생성 (env파일은 로컬에서만 사용 가능하게 하는 것! = 깃허브에 업로드하지 않겠다) 작업 폴더 내에 data 폴더 생성 2. dotenv 라이브러리 설치 pip install python-dotenv 3. .env 파일에 인증키 입력 4. 인증키 불러와지는지 확인 from dotenv import load_dotenv import os load_dotenv() SERVICE_KEY = os.getenv('SEORUL_SERVICE_KEY') print(SERVICE_KEY) vscode에서 해당 코드를 입력했다면, 터미널에서 python [파일명]을 입력해주면 된다 5. 인증키가 잘 불러와지면 url에 f스트링으로 인증키를 입..
크롤링 여러페이지의 데이터 가져오기
·
Python/크롤링
네이버 주식 페이지에서 종목별로 모든 페이지의 데이터 표 가져오기 개발자 도구에서 해당 표에 대한 링크만 뽑을 수 있는 점 참고 1. pd.read_html을 사용해서 테이블 불러오기 pd.read_html을 이용하면 html에 있는 table 속성에 해당하는 값을 가지고 올 수 있다. pandas.read_html(URL, match='.+', flavor=None, header=None, index_col=None, skiprows=None, attrs=None, parse_dates=False, tupleize_cols=None, thousands=', ', encoding=None, decimal='.', converters=None, na_values=None, keep_default_na=Tr..
웹 크롤링 Text 뽑아내기(requests, bs4)
·
Python/크롤링
벅스뮤직 사이트에서 차트에 있는 곡 이름 크롤링하기 1. 우선 HTML 문서를 가져온다 # 필요한 모듈 불러오기 import requests from bs4 import BeautifulSoup import pandas as pd # header와 크롤링 하려는 웹사이트에 대한 변수 지정해줌 (HTTP 요청할때 사용) custom_header = { 'referer' : 'https://music.bugs.co.kr/', 'user-agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36' } url = "https://music.bugs.co...
파이썬에서 if __name__ == "__main__": 구문 쓰는 이유
·
Python/Python 기초문법
if __name__ == "__main__": 구문은? 파이썬 스크립트 파일이 직접 실행될 때만 특정 코드 블록을 실행하도록 하는 관용구(idiom) if __name__ == "__main__": 구문을 쓰는 이유? 모듈과 스크립트의 분리: 파이썬 파일은 스크립트로 실행되거나 다른 파일에서 모듈로 import될 수 있다. if __name__ == "__main__":을 사용하면 스크립트로 직접 실행될 때만 특정 코드 블록이 실행되어 스크립트로서의 역할을 수행하고, import될 때는 실행되지 않아 모듈로 사용될 수 있다. 명시적인 진입점: if __name__ == "__main__":을 사용하면 코드의 진입점이 명시적으로 표시됨. 즉, 스크립트 파일의 시작점이 어디인지 명확하게 표현된다. 재사용성..