5초만에 상승주도지역 찾는 흐름비교차트 만들기

상승주도지역 찾는 흐름비교차트 만들기를 들어가며

상승주도지역을 매우 쉽게 찾을 수 있는 흐름비교차트를 Power BI로 만들어 보도록 하겠습니다.

부동산 데이터 분석 웹과 앱은 많지만, 사용하다 보면 분석의 원리와 목적을 잊기 쉽습니다. Power BI로 직접 아파트 시계열 데이터를 다루면 원리를 이해하고 더 많은 인사이트를 얻을 수 있습니다. 복잡한 분석보다는 단순하면서도 중요한 분석이 더 큰 기준이 됩니다. 이번 포스팅에서는 상승 주도 지역을 쉽게 찾을 수 있는 흐름 비교 차트를 Power BI로 만드는 법을 배워보겠습니다.

Power BI Desktop 다운로드 및 설치 2가지 방법

아파트시계열 다루기(1):ROOT폴더와 Raw-Data준비

우선 이번에 만들어볼 Power BI 보고서는 아래와 같습니다.

흐름비교차트 만들기

데이터 가져오기

우선 분석을 하기위해서는 Raw-data가 있어야 합니다. rawdata는 아래 포스팅으로 여러분들도 쉽게 구할 수 있을 것 입니다.

한국부동산원 Raw-data 가져오기

아래 github에서 코드를 내려받기 하시기 바랍니다.

KB부동산 Raw-data 가져오기

아래 github에서 코드를 내려받기 하시기 바랍니다.

이렇게 해서 여러분 PC에 r1_week.csv (kb부동산 경우에는 kb_week.csv) 파일이 존재하게 될 것 입니다.

상승주도단지찾기_흐름비교차트_만들기 (5)
상승주도단지찾기_흐름비교차트_만들기 (5)

데이터가져오기를 클릭하면 열기 팝업창이 열리게 되며, 여러분 PC에서 r1_week.csv (kb부동산 경우에는 kb_week.csv) 파일이 있는 경로를 선택해서 r1_week.csv (kb부동산 경우에는 kb_week.csv)파일을 클릭합니다.

상승주도단지찾기_흐름비교차트_만들기 (4)
상승주도단지찾기_흐름비교차트_만들기 (4)

이전에 python으로 데이터전처리 과정을 해두었기 때문에 데이터변환 아닌 바로 로드 하도록 하겠습니다.

상승주도단지찾기_흐름비교차트_만들기 (3)
상승주도단지찾기_흐름비교차트_만들기 (3)

아래 Power BI에 raw-data가 들어온 상태가 됩니다.

상승주도단지찾기_흐름비교차트_만들기 (2)
상승주도단지찾기_흐름비교차트_만들기 (2)

새측정값 만들기

비록 기존 python에서 전처리를 한 상태라고 하더라도 보다 예리한 분석을 위해서 더 정교한 전처리가 필요한 경우가 있습니다. 이런 경우 Power BI에서는 새측정값을 만들 수 있습니다.

상승주도단지찾기_흐름비교차트_만들기 (7)
상승주도단지찾기_흐름비교차트_만들기 (7)
상승주도단지찾기_흐름비교차트_만들기 (6)
상승주도단지찾기_흐름비교차트_만들기 (6)

상승주도지역 찾기에 용이한 흐름비교차트를 만드는데는 핵심적인 3개의 측정값이 있습니다. 3개의 측정값 DAX식은 다음과 같습니다.

기준시점_m_js 측정값은 날짜 구간을 선택했을 때, 가장 빠른 날짜의 해당 매매지수를 뜻합니다. 가장 빠른 날짜의 평균_m_js 값과 기준시점_m_js 은 같은 값을 가지게 될 것 입니다. 따라서 아래 m_js지수 공식에 대입하면 100 값이 될 것 입니다.

참고로 kb부동산 주간아파트가격 시계열 경우 r1_week.csv 를 kb_week.csv로 변경하시기 바랍니다.

DAX
평균_m_js = AVERAGE('r1_week'[m_js])
DAX
기준시점_m_js = 
VAR min_ym = CALCULATE(MIN('r1_week'[ymd]), ALLSELECTED('r1_week'))
RETURN
CALCULATE(
    'r1_week'[평균_m_js], 
    'r1_week'[ymd] = min_ym
)
DAX
m_js지수 = 'r1_week'[평균_m_js]/'r1_week'[기준시점_m_js]*100

차트 만들기

새롭게 만든 측정값 및 기존 값들을 차트에 넣어보도록 하겠습니다.

상승주도단지찾기_흐름비교차트_만들기-21
상승주도단지찾기_흐름비교차트_만들기-21

보고서영역의 빈 공간 클릭후 시각화 영역에서 꺽은선형차트를 선택합니다. 위 이미지 처럼 차트하나가 생성이 되었습니다.

그런다음 아래 이미지 처럼 각각 값들을 드래그해서 넣습니다.

상승주도단지찾기_흐름비교차트_만들기 (1)
상승주도단지찾기_흐름비교차트_만들기 (1)
상승주도단지찾기_흐름비교차트_만들기 (13)
상승주도단지찾기_흐름비교차트_만들기 (13)

꺽은선차트 오른쪽 끝에 지역명이 나오도록 할려면 아래 이미지처럼 계열레이블 활성화 시켜주면 되니깐 참고하시기 바랍니다. 그래야 어떤 지역끼리 비교하는지 알 수 있을테니 말입니다.

상승주도단지찾기_흐름비교차트_만들기 (14)
상승주도단지찾기_흐름비교차트_만들기 (14)

슬라이서 만들기

차트를 만들었으니, 이제 차트를 필터링할 수 있는 도구를 만들어 보도록 하겠습니다.

차트는 꺽은선형차트 선택하면되고, 이 차트에 필터링 할 장치는 아래 슬라이서 선택하면 됩니다.

상승주도단지찾기_흐름비교차트_만들기 (11)
상승주도단지찾기_흐름비교차트_만들기 (11)

아래 그림처럼 슬라이서를 선택한 상태에서 원하는 값을 드래그하여 넣습니다. 그런뒤 더블클릭(④)하면 이름을 변경할 수 있습니다.

상승주도단지찾기_흐름비교차트_만들기-20
상승주도단지찾기_흐름비교차트_만들기-20

그런다음 지역선택 슬라이서의 세부 기능을 추가해줍니다. 돋보기 모양의 검색은 많은 값들이 있을 때, 빠르게 검색할 수 있습니다. 그리고 슬라이서 설정에서 단일선택을 할 것 인지? 다중선택을 할 것 인지? 등을 설정할 수 있습니다.

상승주도단지찾기_흐름비교차트_만들기 (15)
상승주도단지찾기_흐름비교차트_만들기 (15)

슬라이서 동기화

우리가 만들고 있는 보고서에는 3개의 페이지가 있습니다. 지역선택 슬라이서는 매매가격_흐름비교차트전세가격_흐름비교차트 이렇게 연동이 되어있습니다. 그리고 기간설정 슬라이서는 3개의 페이지 모두 연동되어 있습니다. 즉 다른 페이지에서 선택하거나, 작동시키면 다른 페이지에서도 변경된 그 상태와 동일하게 됩니다. 이를 슬라이서 동기화 기능이라고 합니다.

한 페이지의 슬라이서를 다른 페이지와 연동할려면 아래와 같이 설정하면 될 것 입니다.

상승주도단지찾기_흐름비교차트_만들기 (12)
상승주도단지찾기_흐름비교차트_만들기 (12)

매매vs전세_흐름비교차트의 지역선택은 단일선택할 수 있도록 설정해줍니다.

상승주도단지찾기_흐름비교차트_만들기 (8)
상승주도단지찾기_흐름비교차트_만들기 (9)
상승주도단지찾기_흐름비교차트_만들기 (9)

혹시 슬라이서 동기화 패널이 열리지 않을 경우 지역선택 슬라이서에서 새롭게 하나의 지역을 추가해보시기 바랍니다. (저는 이것 때문에 많이 헤맸거든요.ㅜㅜ)

상승주도단지찾기_흐름비교차트_만들기 (10)
상승주도단지찾기_흐름비교차트_만들기 (10)

동적인 차트제목 만들기

이제 부터 있으면 더 편리한 기능을 만들어 보도록 하겠습니다. 차트 이름에 기간설정의 범위가 나오도록 하는 것 입니다.

상승주도단지찾기_흐름비교차트_만들기 (19)
상승주도단지찾기_흐름비교차트_만들기 (19)

이런 기능은 없는 것 보다는 있는 것이 훨씬 보기 좋겠죠?^^

이 기능을 만들기 위해서 가장 먼저 두 개의 측정값을 만들어 줍니다. (기간설정 슬라이서에서 선택한 날짜중 최소,최대값을 가져옵니다.)

참고로 kb부동산 주간아파트가격 시계열 경우 r1_week.csv 를 kb_week.csv로 변경하시기 바랍니다.

DAX
max_ym = CALCULATE(MAX('r1_week'[ymd]), ALLSELECTED('r1_week'))
DAX
min_ym = CALCULATE(MIN('r1_week'[ymd]), ALLSELECTED('r1_week'))
상승주도단지찾기_흐름비교차트_만들기 (18)
상승주도단지찾기_흐름비교차트_만들기 (18)

앞서 만든 2개의 측정값으로 아래 처럼 각각 차트제목에 사용될 측정값을 생성합니다.

참고로 kb부동산 주간아파트가격 시계열 경우 r1_week.csv 를 kb_week.csv로 변경하시기 바랍니다.

DAX
매매전세흐름차트제목 = "매매vs전세 흐름비교차트("&'r1_week'[min_ym]&"~"&'r1_week'[max_ym]&")"
DAX
매매흐름차트제목 = "매매흐름비교차트("&'r1_week'[min_ym]&"~"&'r1_week'[max_ym]&")"
DAX
전세흐름차트제목 = "전세흐름비교차트("&'r1_week'[min_ym]&"~"&'r1_week'[max_ym]&")"

그런 다음 아래의 경로를 통해서 제목에 있는 fx를 클릭합니다.

상승주도단지찾기_흐름비교차트_만들기 (16)
상승주도단지찾기_흐름비교차트_만들기 (16)

이렇게 팝업창이 뜨게 되면 필드값 아래는 차트제목에 사용될 바로 직전 만들었던 측정값을 선택하면 됩니다.

상승주도단지찾기_흐름비교차트_만들기 (17)
상승주도단지찾기_흐름비교차트_만들기 (17)

흐름비교차트 구현을 마치며

이상 상승주도지역을 비교적 쉽게 찾도록 해주는 흐름비교차트 구현을 해 보았습니다. 한 번 구현해 두면 아래 이미지 처럼 새로고침 버튼 클릭 만으로 새로운 데이터가 갱신되므로 두고 두고 사용할 수 있습니다. 따라서 흐름비교차트 구현 도전해보시길 바랍니다.

보고서새로고침하기
보고서새로고침하기

4 개 댓글

Leave a Comment

  1. 안녕하세요 선생님,
    recent_file = sorted_file_lst[0]
    IndexError: list index out of range
    에러가 발생하는데 리스트값을 수정해도 잘 해결이 안되네요

    응답
  2. 아..j_js지수도 측정값으로 만들어 주는군요. 설명에 m_js지수만 있어서..^^;
    그럼..매매전세 비교차트에서 Y축에는 매매와 전세지수를 어떻게 함께 넣나요?

    응답