본문 바로가기

Python231

판다스 parse_dates, assign 함수를 활용한 시각화 □ 라이브러리 호출 및 데이터 불러오기 ○ parse_dates - 판다스(Pandas)의 read_csv() 함수에서 사용되는 매개변수 중 하나임. - 이를 이용하여 CSV 파일을 읽을 때 날짜 데이터를 파싱(parse)하여 datetime 형식으로 처리 import pandas as pd import matplotlib.pyplot as plt banks = pd.read_csv('C:/python/DataScience/Data/data/python_data/banklist.csv', parse_dates=['Closing Date','Updated Date']) banks.head() ○ parse_dates banks = banks.assign( closing_quarter = banks['Clo.. 2024. 2. 16.
Datetime & pd.to_datetime □ Dataetime ○ 호출 라이브러리 from datetime import datetime ○ KST kst_time = datetime.now() ○ UTC utc_time = datetime.now() ○ 시간별도지정 sample = datetime(1990,1,1) ○ 시간연산 kst_time = datetime.now() # kst시간 sample = datetime(1990,1,1) # 시간지정 result = kst_time - sample print(result) ○ 시간 표시형식 #YYYY-mm-dd 추출 nowDate1 = kst_time.strftime('%Y-%m-%d') #YY-mm-dd 추출 nowDate2 = kst_time.strftime('%y-%m-%d') #YYYY-m.. 2024. 2. 16.
Plotly ( + Bonus) Plotly 를 활용하여 초보자들은 복잡한 플롯을 만드는 과정을 단순화하고 훌륭한 시각화를 시작할 수 있음 https://plotly.com/python/reference/ Single-page Figure plotly.com □ 라이브러리 import chart_studio.plotly as py import cufflinks as cf □ 생성규칙 ○ fig = go.Figure()로 기본 객체를 만들고 ○ fig.add_trace()에 그래프 객체를 추가 ○ fig.update_layout()으로 layout 업데이트 (필요시) ○ fig.update_annotation()으로 annotation (필요시) ○ fig.show()로 그래프 보기 #판다스로 데이터프레임 생성 #넘파이 .random.r.. 2024. 2. 15.
Selenium 개요 □ 특징 ○ selenium은 웹 브라우저 작업을 자동화하기 위한 패키지임 ○ 브라우저 인스턴스를 원격으로 제어하고 사용자와 브라우저와의 상호작용 지원 ○ 웹 페이지에 텍스트 입력, 체크 박스 선택, 링크 클릭, 마우스 이동 및 임의의 JavaScript 실행 ○ 웹 페이지에서 자료를 수집하기 위한 RPA 구축 시 가장 많이 사용하는 패키지임 ○ BeautifulSoup에 비하면 속도가 느리고 메모리도 상대적으로 많이 사용함 ※ 셀레니움 4 크롬드라이버 자동으로 다운 ※ 최신 업데이트된 방식 사용 - 크롬 드라이버 자동 업데이트 코드 pip install selenium pip list #버젼확인 pip install webdriver-manager #웹드라이버 자동업데이트 #셀레니움 3점대라면 아래 코.. 2024. 2. 14.
특정 사이트 크롤링 및 데이터프레임 생성 □ 아래와 같은 형식으로 데이터를 표시하는 웹사이트 크롤링 후 크롤링한 데이터를 데이터프레임으로 저장해보자 #라이브러리 호출 from bs4 import BeautifulSoup from urllib.request import Request, urlopen import pandas as pd #사이트 url_base = 'http://www.chicagomag.com' url_sub = '/Chicago-Magazine/November-2012/Best-Sandwiches-Chicago/' html = urlopen(url) soup = BeautifulSoup(html, "html.parser") #크롤링 타겟태그 선택 target_area = soup.select('div.sammy') #크롤링 데이.. 2024. 2. 13.
쿠팡 : 상품 검색결과 중 로켓배송인 상품 크롤링 □ 내용 ○ 쿠팡에서 특정 키워드에 따른 검색결과 상품 들 중 로켓배송이 되는 품목만 크롤링 ○ 특이사항 - 변수명 = .select('li[class=search-product') → li 태그 중 클래스명이 정확히 search-product 인 것을 앞 코드와 같이 표현 ▶ .select('li.search-product')과 같이 쓰면 아래 이미지와 같이 특정 클래스명이 들어간것을 모두 파악하여 처리해야할 변수 및 정확도가 떨어짐 - continue 문 : 조건이 True이면 아래 코드까지 진행, 조건이 False면 위로 올라가서 코드실행 #로켓뱃지 rocket_pd = i.select_one('.badge.rocket') if rocket_pd: continue #로켓벳지가 없다면 위로 올라가서 .. 2024. 2. 13.
판다스 : 전처리 기본 함수 요약모음 ○ 인덱스 유 데이터프레임 생성: pd.DataFrame({키:벨류}) df1 = pd.DataFrame( { '미국' : [2.1,2.2,2.3], '한국' : [0.4,0.5,0.45], '중국' : [10,13,15] } ) ○ 인덱스 무 데이터프레임 생성 : pd.DataFrame({키:벨류}, index = [인덱스값]) df2 = pd.DataFrame( { '미국' : [2.1,2.2,2.3], '한국' : [0.4,0.5,0.45], '중국' : [10,13,15] }, index = [1000,2000,3000] ) ○ 인덱스 조회 : 변수명.index df2.index ○ 인덱스 변경 : 변수명.index[변경값] df2.index=[3000,4000,5000] ○ 신규 컬럼추가 및 해.. 2024. 2. 11.
CGV 무비차트 크롤링 □ 과정 ○ 데이터 영역 Select_one으로 지정 ○ 영역에서 특정영역 Select 으로 지정 ○ 반복문을 활용해 '부모태그.클래스명 > 자식태그.클래스명'식으로 정확한 타겟 지정후 string으로 추출 * ('span.txt-info > strong').next_element 사용시 strong 태그가 열리고나서 출현하는 첫번째 텍스트 또는 태그값 가져옴. 도중 중간에 태그가 있다면 그 전까지만 가져옴. 하위 태그 및 텍스트까지 가져오고 싶다면 .find_next() 활용. 2024.02.07 개봉 □ 코드 및 결과 #라이브러리 호출 import requests from bs4 import BeautifulSoup #타겟 target_url = 'http://www.cgv.co.kr/movies/'.. 2024. 2. 11.
SSG 이벤트 크롤링 : select, find_all(string=True) □ .replace : 기존 A를 B로 바꿈 □ .strip() : 앞뒤 공백 제거 □ 태그활용법 : ('태그명'), ('.클래스명'), ('태그명.클래스명'), ('부모태그.클래스명 > 자식태그.클래스명'), ('태그')['속성'] □ select + find_all(string=True) vs select + select_one ○ 아래 코드보면 알 수 있듯이 select + select_one 방법이 정확한 데이터를 추출하고 전처리하기에도 수월함 ○ select+find_all 사용시 간편한 코드로 해당 영역의 텍스트를 신속하게 추출할 수 있지만 전처리하기에 불편함. * 개인적으로 select + select_one 추천 / 특정영역의 정확한 태그값을 지정함으로써 효율적으로 수집, 가공이 가능하기에.. 2024. 2. 9.