일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 프로젝트
- 파이썬 완벽 가이드
- 웹 스크랩핑
- hackerrank
- 스파르타코딩
- 텍스트 분석
- 스파르타
- 내일배움
- R
- 파이썬 머신러닝 완벽가이드
- 파이썬 철저입문
- 내일배움카드
- 파이썬 머신러닝 완벽 가이드
- 티스토리챌린지
- 중회귀모형
- 내일배움캠프
- harkerrank
- MySQL
- 실전 데이터 분석 프로젝트
- TiL
- 미세먼지
- 스파르타 코딩
- 오블완
- wil
- 파이썬 철저 입문
- Cluster
- 프로그래머스
- 파이썬
- 회귀분석
- SQL
- Today
- Total
목록Python/프로젝트 (14)
OkBublewrap

1. review_text TABLE2025-02-28 12:55:28,417 - ERROR - Error fetching 510549066: HTTPSConnectionPool(host='www.cosme.net', port=443): Read timed out. (read timeout=5) 이전에 진행했던 코드로 에러가 발생했다. 연결하는 시간이 적었던 모양이다.추후에 리뷰가 있는 review_id를 가져와 없는 review_id를 추출해서 리뷰 텍스트를 크롤링 진행 def get_review_id_in(): """기존 적재된 review_id 리스트 가져오기""" conn = sqlite3.connect(DB_NAME) cursor = conn.cursor() cursor.e..

1. review table & review_text table 작업ERD 1) review table추가로 작업해야할 작업1. product_id가 들어왔을때 review table이 None 이면 모든 데이터를 수집 해야함2. product_id가 들어왔을때 review table이 있으면 max(review_date) 이후 데이터를 수집해야함+ 사이트를 들어가면 최신순으로 나옴 하나당 600페이지 정도, 병렬 크롤링을 진행해볼려고 했으나코드가 복잡하여 그냥 시도중..review_text는 병렬 크롤링 시도 + 18시간 12분 14초 (병렬로 꼭하자..) random.uniform(5, 10)으로 한것도 이유인것 같다 1, 3으로해도 될 것 같다.총 104,809개의 리뷰..2025-02-27 09:..

1. 데이터 베이스 생성(brand, category, product) 더보기import sqlite3# SQLite 데이터베이스 연결 (없으면 생성됨)conn = sqlite3.connect("cosme.db")cursor = conn.cursor()# # 기존 테이블 삭제 (있으면 삭제)cursor.execute("DROP TABLE IF EXISTS product")cursor.execute("DROP TABLE IF EXISTS category")cursor.execute("DROP TABLE IF EXISTS brand")cursor.execute("DROP TABLE IF EXISTS rank")# products 테이블 생성cursor.execute("""CREATE TABLE IF NOT ..

ERD 함수 생성def extract_id(url): """ 주어진 URL에서 ID를 추출하는 함수. 'brands/{id}' 또는 'products/{id}' 경로가 있는 URL을 처리. Parameters: url (str): URL Returns: str: ID 또는 None (ID가 없는 경우) """ match = re.search(r'(?:brands|products)/(\d+)', url) if match: return match.group(1) # ID 반환 return None # ID가 없는 경우 None 반환 url을 가져오면 brand, products일 경우 https://ww..

1. 프로젝트 계획@cosme에 있는 한국 화장품 브랜드 랭킹 데이터베이스 구축주기적(매주)으로 크롤링 후 데이터베이스 적재 2. 기술 스택pythonrequestsBeautifulSoupSQLite 3. 수집 플랫폼 韓国コスメのおすすめ商品・人気ランキング|美容・化粧品情報はアットコスメ www.cosme.net 4. ERD 구상

봄이 되서 그런지 황사의 계절이 다가 온 것 같다. 한 때 미세먼지가 엄청 심할때가 있었는데 디스코드 봇을 공부하다가 문득 알람이 오는 것을 보고 한번 만들어 보기로 했다. 우선 공공데이터 API를 활용 AQI(대기질 지수)로 계산해서 메세지를 받는 그런 설계를 해보았다. AQI에는 6가지 대기 오염 물질을 측정해야하는데, PM25, PM10, 일산화탄소, 이산화황, 이산화질소, 지상 오존이 필요하게 된다. 위에서 보면 필요한 데이터는 각각 pm25value, pm10value, coValue, so2Value, no2Value, o3Value의 태그만 추출하면 될 것이다. 동은 한 곳으로 1시간 마다 10시간으로만 만들어 보기로 했다. 카테고리는 이렇게 나누어지는데 좋음 : 창문을 열고 집안을 환기, ..

전에 이어서 분석을 하고 싶은 상수도에서만 대해 분석을 진행 df_seoul_water = df_seoul[df_seoul['부서레벨2'] == '상수도사업본부'] df_seoul_water.head(5) 부서명을 조회를 해봤다. 부서명에는 엄청 많은 부서명이 존재를 했다. 일단 필요없는 부서레벨1, 부서레벨2는 삭제하고 부서명을 표시해봤다. # 부서레벨1, 부서레벨2 열 삭제 df_seoul_water_x = df_seoul_water.drop(['부서레벨1', '부서레벨2'], axis = 1) # 부서명 고유값 df_seoul_water_x['부서명'].unique() array(['급수부', '구의아리수정수센터 정수과', '강북정수센터 정수시설과', '상수도사업본부 영등포아리수정수센터 정수과', ..

부서레벨1 집행 비중 from matplotlib import pyplot as plt pd.set_option('display.max_rows', None) %matplotlib inline plt.rcParams['font.family'] = 'Malgun Gothic' plt.rcParams["figure.figsize"] = (20, 10) plt.rcParams["font.size"] = 12 plt.rcParams["figure.autolayout"] = True df_seoul_1 = df_seoul[df_seoul['부서레벨1'] == '서울시본청'] group_count_1 = df_seoul_1[['부서레벨1', '부서레벨2', '집행금액']].groupby(['부서레벨1','부서레벨2..

실제 데이터로 분석을 진행을 한다. 분석할 데이터는 서울시 업무 추진비 이다. 분석전 데이터를 불러와서 결합하고 처리하는 코드는 생략한다. import pandas as pd data_folder = 'C:/myPyCode/data/seoul_expense/' years = [2016, 2017, 2018] df_expense_all = pd.DataFrame() for year in years: expense_list_year_dir = data_folder + str(year) + '/' expense_list_tidy_file = "{}_expense_list_tidy.csv".format(year) path_file_name = expense_list_year_dir + expense_list_t..

import pandas as pd data_file = "C:/myPyCode/data/total_sales_data.csv" df_sales = pd.read_csv(data_file) df_sales df_sales.info() 매장명 9 non-null object 제품종류 non-null object 모델명 non-null object 판매 non-null int64 재고 non-null int64 df_sales['매장명'].value_counts() # C 3 # B 3 # A 3 df_sales['제품종류'].value_counts() # 스마트폰 5 # TV 4 Pivot Table # 매장별 제품종류별 모델명별 재공량합계, 판매합계 df_sales.pivot_table(index=["매..