상승주도지역 찾는 흐름비교차트 만들기를 들어가며
상승주도지역을 매우 쉽게 찾을 수 있는 흐름비교차트를 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) 파일이 존재하게 될 것 입니다.
데이터가져오기를 클릭하면 열기 팝업창이 열리게 되며, 여러분 PC에서 r1_week.csv (kb부동산 경우에는 kb_week.csv) 파일이 있는 경로를 선택해서 r1_week.csv (kb부동산 경우에는 kb_week.csv)파일을 클릭합니다.
이전에 python으로 데이터전처리 과정을 해두었기 때문에 데이터변환 아닌 바로 로드 하도록 하겠습니다.
아래 Power BI에 raw-data가 들어온 상태가 됩니다.
새측정값 만들기
비록 기존 python에서 전처리를 한 상태라고 하더라도 보다 예리한 분석을 위해서 더 정교한 전처리가 필요한 경우가 있습니다. 이런 경우 Power BI에서는 새측정값을 만들 수 있습니다.
상승주도지역 찾기에 용이한 흐름비교차트를 만드는데는 핵심적인 3개의 측정값이 있습니다. 3개의 측정값 DAX식은 다음과 같습니다.
기준시점_m_js 측정값은 날짜 구간을 선택했을 때, 가장 빠른 날짜의 해당 매매지수를 뜻합니다. 가장 빠른 날짜의 평균_m_js 값과 기준시점_m_js 은 같은 값을 가지게 될 것 입니다. 따라서 아래 m_js지수 공식에 대입하면 100 값이 될 것 입니다.
참고로 kb부동산 주간아파트가격 시계열 경우 r1_week.csv 를 kb_week.csv로 변경하시기 바랍니다.
평균_m_js = AVERAGE('r1_week'[m_js])
기준시점_m_js =
VAR min_ym = CALCULATE(MIN('r1_week'[ymd]), ALLSELECTED('r1_week'))
RETURN
CALCULATE(
'r1_week'[평균_m_js],
'r1_week'[ymd] = min_ym
)
m_js지수 = 'r1_week'[평균_m_js]/'r1_week'[기준시점_m_js]*100
차트 만들기
새롭게 만든 측정값 및 기존 값들을 차트에 넣어보도록 하겠습니다.
보고서영역의 빈 공간 클릭후 시각화 영역에서 꺽은선형차트를 선택합니다. 위 이미지 처럼 차트하나가 생성이 되었습니다.
그런다음 아래 이미지 처럼 각각 값들을 드래그해서 넣습니다.
꺽은선차트 오른쪽 끝에 지역명이 나오도록 할려면 아래 이미지처럼 계열레이블 활성화 시켜주면 되니깐 참고하시기 바랍니다. 그래야 어떤 지역끼리 비교하는지 알 수 있을테니 말입니다.
슬라이서 만들기
차트를 만들었으니, 이제 차트를 필터링할 수 있는 도구를 만들어 보도록 하겠습니다.
차트는 꺽은선형차트 선택하면되고, 이 차트에 필터링 할 장치는 아래 슬라이서 선택하면 됩니다.
아래 그림처럼 슬라이서를 선택한 상태에서 원하는 값을 드래그하여 넣습니다. 그런뒤 더블클릭(④)하면 이름을 변경할 수 있습니다.
그런다음 지역선택 슬라이서의 세부 기능을 추가해줍니다. 돋보기 모양의 검색은 많은 값들이 있을 때, 빠르게 검색할 수 있습니다. 그리고 슬라이서 설정에서 단일선택을 할 것 인지? 다중선택을 할 것 인지? 등을 설정할 수 있습니다.
슬라이서 동기화
우리가 만들고 있는 보고서에는 3개의 페이지가 있습니다. 지역선택 슬라이서는 매매가격_흐름비교차트와 전세가격_흐름비교차트 이렇게 연동이 되어있습니다. 그리고 기간설정 슬라이서는 3개의 페이지 모두 연동되어 있습니다. 즉 다른 페이지에서 선택하거나, 작동시키면 다른 페이지에서도 변경된 그 상태와 동일하게 됩니다. 이를 슬라이서 동기화 기능이라고 합니다.
한 페이지의 슬라이서를 다른 페이지와 연동할려면 아래와 같이 설정하면 될 것 입니다.
매매vs전세_흐름비교차트의 지역선택은 단일선택할 수 있도록 설정해줍니다.
혹시 슬라이서 동기화 패널이 열리지 않을 경우 지역선택 슬라이서에서 새롭게 하나의 지역을 추가해보시기 바랍니다. (저는 이것 때문에 많이 헤맸거든요.ㅜㅜ)
동적인 차트제목 만들기
이제 부터 있으면 더 편리한 기능을 만들어 보도록 하겠습니다. 차트 이름에 기간설정의 범위가 나오도록 하는 것 입니다.
이런 기능은 없는 것 보다는 있는 것이 훨씬 보기 좋겠죠?^^
이 기능을 만들기 위해서 가장 먼저 두 개의 측정값을 만들어 줍니다. (기간설정 슬라이서에서 선택한 날짜중 최소,최대값을 가져옵니다.)
참고로 kb부동산 주간아파트가격 시계열 경우 r1_week.csv 를 kb_week.csv로 변경하시기 바랍니다.
max_ym = CALCULATE(MAX('r1_week'[ymd]), ALLSELECTED('r1_week'))
min_ym = CALCULATE(MIN('r1_week'[ymd]), ALLSELECTED('r1_week'))
앞서 만든 2개의 측정값으로 아래 처럼 각각 차트제목에 사용될 측정값을 생성합니다.
참고로 kb부동산 주간아파트가격 시계열 경우 r1_week.csv 를 kb_week.csv로 변경하시기 바랍니다.
매매전세흐름차트제목 = "매매vs전세 흐름비교차트("&'r1_week'[min_ym]&"~"&'r1_week'[max_ym]&")"
매매흐름차트제목 = "매매흐름비교차트("&'r1_week'[min_ym]&"~"&'r1_week'[max_ym]&")"
전세흐름차트제목 = "전세흐름비교차트("&'r1_week'[min_ym]&"~"&'r1_week'[max_ym]&")"
그런 다음 아래의 경로를 통해서 제목에 있는 fx를 클릭합니다.
이렇게 팝업창이 뜨게 되면 필드값 아래는 차트제목에 사용될 바로 직전 만들었던 측정값을 선택하면 됩니다.
흐름비교차트 구현을 마치며
이상 상승주도지역을 비교적 쉽게 찾도록 해주는 흐름비교차트 구현을 해 보았습니다. 한 번 구현해 두면 아래 이미지 처럼 새로고침 버튼 클릭 만으로 새로운 데이터가 갱신되므로 두고 두고 사용할 수 있습니다. 따라서 흐름비교차트 구현 도전해보시길 바랍니다.
좋은 정보 감사합니다.
안녕하세요 선생님,
recent_file = sorted_file_lst[0]
IndexError: list index out of range
에러가 발생하는데 리스트값을 수정해도 잘 해결이 안되네요
한번 따라해봤는데, 다운받은 파일에 j_js만 있고, j_js지수는 없어요ㅠㅜ
아..j_js지수도 측정값으로 만들어 주는군요. 설명에 m_js지수만 있어서..^^;
그럼..매매전세 비교차트에서 Y축에는 매매와 전세지수를 어떻게 함께 넣나요?