MySQL6 [SQL로 배우는 데이터 전처리 분석] 11. 식품 배송 데이터 분석 (3) - 다음 구매까지의 소요 기간과 재구매 관계 이번 포스팅은 식품 배송 데이터 분석의 마지막 포스팅으로 상품의 재구매에 대한 소요 기간과 여러 가지 관계에 대해서 알아보겠습니다. 다음 구매까지의 소요 기간과 재구매 관계 우리는 "고객이 자주 재구매하는 상품은 그렇지 않은 상품보다 일정한 주기를 가질 것이다"라는 가정을 세우고 수치를 살펴보겠습니다. 재구매율이 높은 순서대로 상품을 10가지 그룹으로 구분하고, 각 그룹에서의 구매 소요 기간의 분산을 구해보겠습니다. 분산은 그 확률 변수가 기댓값에서 얼마나 떨어진 곳에 분포하는지를 나타내는 값입니다. 즉, 분산이 낮을수록 데이터가 평균에 모이게 되고, 분산이 클수록 관측치는 평균에서 멀리 분포합니다. 먼저 다음과 같은 방법으로 상품별 재구매율을 계산하고, 가장 높은 순서대로 순위를 매깁니다. SELECT.. 2022. 7. 27. [SQL로 배우는 데이터 전처리 분석] 8. 상품 리뷰 데이터를 이용한 리포트 작성 (3) - Size Complain과 Clothing ID별 Size review 안녕하세요. 이번 포스팅은 review에 종종 나왔던 size에 대한 complain과 clothing id별 size review에 대해 분석해보겠습니다. Size Complain 이전 포스팅에서 살펴본 내용에 따르면, Complain 내용의 다수가 Size에 관련한 문제였습니다. 먼저 전체 리뷰 내용 중 Size와 관련된 리뷰가 얼마나 되는지 확인하기 위해서 Review Text의 내용 중 size라는 단어가 언급된 Reivew가 몇 개인지 계산해보겠습니다. SELECT `REVIEW TEXT`, CASE WHEN `REVIEW TEXT` LIKE '%SIZE%' THEN 1 ELSE 0 END SIZE_YN FROM MYDATA.DATASET2; SIZE_YN은 리뷰의 내용 중 size가 포함되어 .. 2022. 7. 21. [SQL로 배우는 데이터 전처리 분석] 7. 상품 리뷰 데이터를 이용한 리포트 작성 (2) - 주요 Complain 및 연령 별 Worst Department 이번 포스팅은 상품 리뷰 데이터에서 평점이 낮은 상품의 주요 Complain이 무엇인지 알아보고, 연령 별 Worst Department를 분석해보겠습니다. 평점이 낮은 상품의 주요 Complain 먼저 Department별로 평점이 낮은 주요 10개 상품을 조회한 후, 해당 상품들의 리뷰를 살펴보겠습니다. 1) Department Name, Clothing Name별 평균 평점 계산 SELECT `DEPARTMENT NAME`, `CLOTHING ID`, AVG(RATING) AVG_RATE FROM MYDATA.DATASET2 GROUP BY 1, 2; 2) Department별 순위 생성 Department, Clothing id의 평균 평점을 계산하고, Department 내에서 평균 평점을 기준.. 2022. 7. 21. [SQL로 배우는 데이터 전처리 분석] 6. 상품 리뷰 데이터를 이용한 리포트 작성 (1) - Division별 평점 분포 계산 천 대리님, 의류 회사에서 상품별 리뷰 데이터를 분석해 달라는 요청을 받았습니다. 상품 평점을 통해 상품의 문제점과 개선 방향을 찾는 것이 이 분석의 주요 목적입니다. 천 대리님이 자유롭게 분석해서 공유해 주세요. 이번 포스팅은 상품 리뷰 데이터를 이용하여 Division별 평점 분포를 계산해보겠습니다. 1) Division별 평균 평점 계산 먼저 Division별로 평점을 계산해 보고, 어떤 Division의 상품이 좋은 평가를 받는지 또는 좋지 않은 평가를 받는지 살펴보겠습니다. 해당 데이터 세트의 칼럼 구조를 살펴보겠습니다. Clothing ID : 상품 번호 (Unique Value) Age : 나이 Title : 리뷰 제목 Review Text : 리뷰 내용 Rating : 리뷰 작성자가 제출한.. 2022. 7. 20. [미해결] 대용량 데이터 MySQL에 저장 및 조회 - executemany 의문점 필자가 적재해야 할 데이터 셋은 1000만 개의 세트가 있는데, 단순 cur.execute로 진행하면 데이터 프레임을 한 줄씩 읽어서 execute 해주기 때문에 오랜 시간이 걸립니다. 그래서 executemany를 사용하기로 결정했습니다. import mysql.connector import time import pyarrow.parquet as pq import datetime from tqdm import tqdm def csv_multi_insert_table(): # parquet 형식으로 저장한 데이터를 pandas dataframe으로 변형해서 저장 df = pq.read_table(PARQUET_FILE_PATH).to_pandas() # 시간 측정 # dataframe 행에 대한 순한 반.. 2022. 7. 8. [MySQL] 대용량 데이터 MySQL에 저장 및 조회 - sqlalchemy, to_sql 아래 포스팅에서 진행한 데이터를 가지고 mySQL에 삽입하고 조회해보겠습니다. 2022.07.06 - [python] - [python] 대용량 데이터 읽고 저장 ( pandas vs pyarrow ) with parquet [python] 대용량 데이터 읽고 저장 ( pandas vs pyarrow ) with parquet 최근에 mySQL을 다시 공부하면서 대용량 데이터를 DB에 적재하고, 조회하는 시간을 줄이는 방법에 대해서 고민했습니다. 평소 데이터를 읽을 때 pandas를 애용하고, 파일 형식을 csv나 json으로 맞춰 wnstjrdl.tistory.com 천 만개의 row를 가진 데이터이기 때문에 시간이 좀 걸릴 거라고 예상됩니다. 참고한 사이트들에는 필자보다 적은 데이터인 500-800만.. 2022. 7. 7. 이전 1 다음