일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- jd
- cross join
- If
- 기초통계
- GA4
- 최종 프로젝트
- 군집화
- Python
- 태블로
- 프로젝트
- 데이터 분석
- 전처리
- streamlit
- 서브쿼리
- 머신러닝
- 기초프로젝트
- 프롬프트 엔지니어링
- SQL
- 클러스터링
- data analyst
- 히트맵
- 크롤링
- pandas
- 팀프로젝트
- Chat GPT
- lambda
- 데이터분석
- 시각화
- SQLD
- da
- Today
- Total
세조목
실전 프로젝트 6일차(24.03.05) 본문
실전 프로젝트 6일차입니다.
금일은
- (중급)-1 라인 차트 그리기
- (고급)-1 파이 차트(or else) 그리기
- (고급)-2 & (지옥) 개별적으로 풀어보기
를 진행했습니다.
(중급)-1 의 경우 앞서 풀었던 (초급)-1~3 문제를 한 번에 표현하는 것으로 위와같이 시각화했습니다.
(고급)-1의 경우 의문사항이 생겨 기존의 데이터를 가지고서 시각화를 진행할 수가 없었습니다.
(고급)-1은 아래와 같은데요,
저희는 아래와 같이 각각의 테이블에서 user_id와 product_id(첫번째 fixed에서의 경우 split)를 기준으로 created_at의 최소값을 구해서 전자가 후자보다 작은지를 구해보았습니다.
FIXED [User Id], [split] : MIN([Created At]) }
< { FIXED [User Id (Order Items.Csv], [Product Id] : MIN([Created At]) }
그러나 이렇게 진행할 경우 '최소'라는 말 그대로 가장 오래된 주문 data만 남게됩니다.
이것이 문제가 될수도 있겠다고 생각한 이유는 다음과 같습니다.
저희의 경우 user_id와 product_id를 기준으로 created_at을 계산했습니다.
이 때 Min함수를 씌워서 가장 최소의 created_at을 구했습니다.
그런데 이렇게 할 경우 아래 이미지의 노란색 부분만 남게 됩니다.
이렇게 되면 user_id, product_id 한 쌍의 event, order 시간 각각을 비교할 수가 없습니다.
아래 이미지의 하얀색 부분에 해당하는 경우가 바로 이 경우입니다.
해당 부분에 대해서 튜터님께 문의한 결과
현재 난이도에서는 그 부분까지는 고려하지 않아도 되고,
위 이미지의 노란색 부분만을 가지고서 event 시간이 order 시간 이전에 있는지만 판단하면 된다고 하셨습니다.
그렇게하려면 python을 가지고서
event 테이블, order 테이블별로 각각 groupby한 다음
최소의 created_at을 구하고, 두 테이블을 join하여 시간을 비교해줘야 합니다.
관련 작업은 내일 진행할 예정이며
작업이 끝나면 그 다음 문제인 (고급)-2 예제도 진행해보려고합니다.
'데이터 분석 공부 > 프로젝트' 카테고리의 다른 글
실전 프로젝트 8일차(24.03.07) (1) | 2024.03.07 |
---|---|
실전 프로젝트 7일차(24.03.06) (0) | 2024.03.06 |
실전 프로젝트 4~5일차(24.03.03~04) (0) | 2024.03.04 |
실전 프로젝트 3일차(24.03.02) (0) | 2024.03.02 |
실전 프로젝트 2일차(24.03.01) (0) | 2024.03.01 |