데이터분석 6기/본캠프

2025-05-07 태블로 실습

seyeon1130 2025. 5. 7. 21:22

태블로 4주차

 

필터 만들기

 

 

필터 들어가서 상위 10개만 출력 가능

 

 

 

 

그냥 끌어서 필터 만들 수도 있음

 

필터 표시를 하면 특정 지역만 선택해서 상위10개 선택할 수 있음

 

근데 이러면 지역별 상위 10개가 아니라, 고객별 순위에서 지역이 선택되기 때문에 핆터 우선 순위를 바꿔야 한다.

 

컨텍스트에 추가하면 우선순위가 더 높아지고 결과도 잘 출력되는 것을 알 수 있음.

 

테이블 계산

 

구성 비율로 계산 하고싶으면 퀵테이브 계산에서 선택 가능

 

테이블 계산에서 서브 카테고리만 선택하면, 카테고리 안에서 서브 카테고리가 몇 % 비율의 매출을 차지하는지 볼 수 있다.

 

태블로 함수

 

논리함수

 

IF, CASE WHEN

 

IF SUM([Sales]) >= 10000
THEN '상위 매출' ELSE '하위 매출' END
 
CASE [측정값]
WHEN 'Sales' THEN [매출]
WHEN 'Profit' THEN [수익] 
...
END

 

 

날짜 함수

#날짜 빼기
DATEDIFF(단위, 시작 날짜, 끝 날짜)

#날짜 더하기
DATEADD(단위, 간격, 기준 날짜)

 

 

계산 필드에 이런식으로 직접 끌어서 쓰는 거 가능

 

 

 

LOD 식

 

 

현재 화면에 영향을 받지 않고 독립적으로 사용 가능한 함수

LOD식은 세분화된 수준(INCLUDE), 덜 세분화된 수준(EXCLUDE), 완전히 독립적인 수준(FIXED) 크게 3가지로 나누어짐

 

이게 무슨 말이냐면, 뷰에서 우리가 필터로 보고싶은 지역을 선택했다고 해도, 이 함수들은 그 화면에 영향받지 않고 원하는 지역의 집계를 볼 수 있다는 뜻

 

INCLUDE :지정된 차원 뿐만 아니라 모든 차원 계산

EXCLUDE : 지정된 차원 제외하고 계산

FIXED: 뷰에 있는 차원과 상관없이 계산식에 있는 수식 계산

 

{[FIXED | INCLUDE | EXCLUDE] [차원1], [차원2] : AVG([측정값])}

 

 

계층이 있는 차원은 + 버튼 누르면 하위계층까지 나올 수 있음

 

FIXED 예시

{FIXED[Region]:SUM([Sales])}

 

FIXED로 예시를 보면, 지금 현재 VIEW는 서브 지역별로 나뉘었고, FIXED는 원래 나라로 지역으로 나뉘어있음

 

EXCLUDE 예시

{EXCLUDE [Country/Region] : SUM([Sales])}

 

EXCLUDE에서는 COUNTRY 를 제외시켰으므로 그 상위카테고리로 계산된 값이 나온다.

 

INCLDUE 예시

{INCLUDE [State/Province]:AVG([Sales])}

 

 

내가 더 세부 컬럼을 include에 넣으면, 그 세부 컬럼들의 각 평균을 구하고 그거에 평균을 뷰에 보여줌.

 

 

대시보드

 

 

바둑판식

겹치지 않고,  크기 조정도 태블로가 다 해줌

 

 

부동

원하는 위치에 겹치게 놓을 수 있음

 

태블로 실습 문제

 

 

 

여러 개 놓을 때 전체보기 해서 맞춰가면 비율 똑같이 맞출 수 있음

 

컨테이너를 추가해가며 원하는 모양 만들기

 

 

콘텐츠 균등분할 하면 균등 하게 분할 됨~

 

필터 적용을 할 수 있음

 

 

원하는 워크시트마다 다 적용 가능

그럼 년도별로 그래프도 변화해가며 볼 수 있음

 

이런식으로 하면 대략 완성~

 

 

 

+

 

색상에서 단계별 색상 하면 높은 그래프와 낮은 그래프를 두 가지 색으로 나눌 수 있음

 

분석 탭에서 추세선 넣으면 선형 그래프도 추가 가능

 

파이썬 윈도우 함수

 

sql에서 순위 윈도우 함수

 

RANK() : 중복 순위 있고 건너뛰기 (113)

DENSE_RANK() : 중복 순위 있고 안건너뛰기 (112)

ROW_NUMBNER() : 중복순위 없고 안건너뛰기 (123)

 

Python 으로 구현하기

 

df['순위'] = df['점수'].rank(method='min', ascending=False)

method = 'min' : rank

method= 'dense': DENSE_RANK()

method='first': SQL의 ROW_NUMBER()