일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- SQL
- MySQL
- 실전 데이터 분석 프로젝트
- 내일배움캠프
- 스파르타
- 텍스트 분석
- 내일배움
- 웹 스크랩핑
- harkerrank
- 회귀분석
- 내일배움카드
- 스파르타 코딩
- TiL
- 파이썬 머신러닝 완벽가이드
- 파이썬
- 프로그래머스
- R
- wil
- 미세먼지
- hackerrank
- 파이썬 철저 입문
- 파이썬 철저입문
- 중회귀모형
- 파이썬 머신러닝 완벽 가이드
- Cluster
- 프로젝트
- 파이썬 완벽 가이드
- 티스토리챌린지
- 오블완
- 스파르타코딩
- Today
- Total
OkBublewrap
2024-11-27 TIL (데이터 분석 가설, SQL Pivot Table, Limit) 본문
아티클 # 2 리뷰
https://www.beusable.net/blog/?p=2185
데이터 분석 가설 구축을 위해 해야 하는 3가지 질문 | 뷰저블
올바른 가설 수립은 올바른 질문으로부터 시작합니다.
www.beusable.net
사람이 해야 하는일
- 과제 설정 : 어떤 데이터가 필요한가?
- 목표 설정 : 해당 데이터를 통해 조직의 어떤 목표를 달성할 것인가?
- 가설 수립 : 해당 목표를 어떤 방향으로 달성할 것인가?
가설은 조직의 길라잡이이자 사고의 보조자
가설 수립은 문제가 무엇인지를 명확하게 이해하는 것으로부터 시작됩니다.
-> 왜 데이터 분석을 해야 하는가?에 대한 문제 파악
-> 그 이후 해당 문제 해결을 위해서는 어떤 범위 내의 데이터가 필요한지, 해당 데이터를 어떻게 분석해나갈 것인지 검토
올바른 가설 수립은 올바른 질문으로부터 시작된다.
1. 우리 조직 또는 서비스가 당면한 문제가 무엇인가?
우리가 처한 문제 파악에 긴 시간을 투자해야 한다.
2. 문제를 해결하려면 어떤 데이터가 필요한가?
해당 문제를 해결하기 위해서 어떤 데이터를 살펴봐야 하는지 정리(데이터에 우선순위, 분석 툴, 데이터 범위)
3. 해당 데이터를 누가 어떻게 분석할 것인가?
해당 데이터를 누가, 어떻게 분석 할 것인지 분석에 대한 계획(액션 방안) 도출
결론
가설은 분석가가 수립을 해야 하고, 수립하는 방법에는 정답이 없으며 그렇기 때문에 될 수 있는 많은 데이터를 살펴보고, 더 많은 가설을 직접 수립해보는것.
데이터 문해력에 나왔던 내용이고 강조했던 내용이다.
예시) 고객 이탈 문제를 해결하기 위해서 필요한 데이터는 고객 행동 데이터, 고객 특성 데이터, 피드백 데이터, 벤치마크 데이터가 있고, 여기서 우선 순위는 고객 행동 데이터 -> 고객 특성 데이터-> 피드백 데이터로 이어진다.
다음은 누가 데이터 범위를 어떤 툴로 분석을 할 건지 해야한다. (마감일은 필수)
어떻게 액션 방안을 도출 할 것인지 중요!
SQL
Pivot-Table
SELECT order_date, ship_country
FROM nw.orders;
1. 연도별, 국가별 주문건수 구하기
SELECT date_part('year', order_date) as year, ship_country AS country, count(*)
FROM nw.orders
GROUP BY 1, 2;
2. 국가가 많아 대륙으로 변환
SELECT date_part('year', order_date) as year,
CASE
WHEN ship_country IN ('Argentina', 'Venezuela', 'Brazil', 'Mexico') THEN 'South America'
WHEN ship_country IN ('USA', 'Canada', 'Mexico') THEN 'North America'
WHEN ship_country IN ('Spain', 'Switzerland', 'Italy', 'Belgium', 'Norway', 'Sweden', 'France',
'Austria', 'Poland', 'UK', 'Ireland', 'Germany', 'Denmark',
'Portugal', 'Finland') THEN 'Europe'
ELSE 'Unknown'
END AS continent
, count(*)
FROM nw.orders
GROUP BY 1, 2;
3. 연도별 국가별 주문 건수
SELECT
year,
SUM(CASE WHEN continent = 'South America' THEN cnt ELSE 0 END) AS South_America,
SUM(CASE WHEN continent = 'North America' THEN cnt ELSE 0 END) AS North_America,
SUM(CASE WHEN continent = 'Europe' THEN cnt ELSE 0 END) AS Europe,
SUM(CASE WHEN continent = 'Unknown' THEN cnt ELSE 0 END) AS Unknown
FROM (
SELECT
date_part('year', order_date) AS year,
CASE
WHEN ship_country IN ('Argentina', 'Venezuela', 'Brazil', 'Mexico') THEN 'South America'
WHEN ship_country IN ('USA', 'Canada', 'Mexico') THEN 'North America'
WHEN ship_country IN ('Spain', 'Switzerland', 'Italy', 'Belgium', 'Norway', 'Sweden',
'France', 'Austria', 'Poland', 'UK', 'Ireland', 'Germany',
'Denmark', 'Portugal', 'Finland') THEN 'Europe'
ELSE 'Unknown'
END AS continent,
COUNT(*) AS cnt
FROM nw.orders
GROUP BY 1, 2
) a
GROUP BY year
ORDER BY year;
SQL 2회차
LIMIT offset, count
- offset : 건너뛸 행의 수
- 즉, 실제로 반환되는 데이터는 offset+1 번째 행 부터 시작
- count : 그 이후에 가져올 행(row)의 수
-- 3번째 행부터 5개의 데이터를 조회
SELECT *
FROM employees
ORDER BY age DESC
LIMIT 2, 5
LIMIT 10을 정수형을 주로 작성을 했는데 행을 나눠서 볼 수 있다는 것을 배웠다.
'Today I Learning' 카테고리의 다른 글
2024-11-29 TIL (데이터 잘보기) (1) | 2024.11.29 |
---|---|
2024-11-28 TIL (데이터 스토리텔링) (0) | 2024.11.28 |
2024-11-26 TIL (A/B test, 직무분석) (1) | 2024.11.26 |
2024-11-25 TIL (일기) (0) | 2024.11.25 |
데이터 분석 부트캠프(나비의 바람짓) (0) | 2024.11.25 |