먼저 데이터 전처리를 시작하기 전 파워쿼리 에디터의 구성에 대해서 잠시 살펴보겠습니다. 엑셀과 비슷하게 생겼지만, 완전히 다른 구조를 가졌으므로 머릿속에서 엑셀에 대한 생각을 지워야 보다 쉽게 다가갈 수 있습니다.

파워쿼리 에디터는 아래와 같이 5개의 영역으로 나눌 수 있습니다.

  1. 쿼리 에디터 리본 (Query Editor Ribbon) - 데이터 수정 작업을 실행하는 명령 버튼 (복잡한 프로그래밍 언어를 간단히 버튼 클릭으로 수행할 수 있도록 도와줍니다) 
  2. 쿼리 창 - 현재 쿼리 에디터에 있는 쿼리 리스트
  3. 작업 창 - 진행된 작업의 결과물을 보여주는 창
  4. 쿼리 설정 - 현재 작업 중인 쿼리 이름과 적용된 단계를 보여주는 창
  5. 상태 바 - 셀에 있는 내용을 보여주는 창

 

작업 창과 적용된 단계에 대해 잠시 말씀드리겠습니다.


작업 창

작업 창은 지금까지 진행된 결과물을 시각화시킨 창으로 사용자가 보다 편하게 결과물을 확인해가며 데이터 변환을 할 수 있도록 도와주는 창으로, 결과물이 친숙한 엑셀 형태로 보여주니 좀 더 직관적으로 작업을 진행할 수 있습니다.

파이썬 (Python)의 경우도 데이터 변환을 수행할 때 Jupyter Notebook을 많이 사용하는데, 이것도 마찬가지로 코딩한 결과물을 파워쿼리 에디터의 작업 창처럼 테이블이나 차트로 바로 보여주는 기능을 가지고 있기 때문에 데이터 전처리 과정에서 많이 사용되는데, 실행한 명령의 결과를 바로 확인하며 작업할 수 있는 환경을 제공한다는 것은 사용자 입장에서는 만점에 가까운 기능이라 할 수 있습니다.


적용된 단계 창

적용된 단계를 보여주는 창은 가장 중요한 부분이라 생각하는데, 지금껏 데이터 변환을 위해 입력한 명령을 단계별로 저장해 어떤 단계를 거쳐 지금의 결과물을 가지고 왔는지 일목요연하게 리스트로 보여줍니다. 적용된 단계는 M-Code (M 언어라고도 합니다)로 구성된 명령어를 수식 창에 보여주며, 이에 대한 결과물은 바로 작업 창에 보여주는 형태입니다. 아주 편한 점은 지금껏 작업한 단계가 그대로 기록이 되기 때문에 원하는 단계로 이동이 가능하다는 것입니다.

위의 이미지와 같이 “탐색’을 선택하면 “탐색” 명령에 사용된  M-Code가 수식 창에 나타나며, “탐색” 명령이 실행된 뒤의 결과물을 동시에 작업 창에 보여줍니다. 이곳에 다른 명령을 추가하고 싶으면 추가도 가능하고, 필요 없는 부분은 삭제도 가능하며, 수정도 가능합니다.


쿼리의 적용된 단계를 설명하자면 글이 너무 길어질 것 같으니 다음번에 자세히 다루도록 하겠습니다.

 

이렇게 구성된 쿼리 에디터를 이용해 데이터 전처리를 진행하여 일반 데이터를 파워비아이가 원하는 데이터로 형태를 바꾸면 파워비아이의 보고서 창에서 데이터 시각화에 사용이 가능하게 됩니다.

 

파워비아이에는 기본적으로 파워쿼리 에디터 (Power Query Editor)가 내장되어 있습니다. 파워비아이의 메뉴바에서 데이터 변환 버튼을 누르면 파워쿼리 에디터로 들어가 가지고 온 데이터를 수정할 수 있습니다.

 

이를 수행하기 위해 선행되어야 하는 것이 데이터 가져오기입니다.

데이터를 불러오는 방법은 아주 간단한데, 메뉴바에서 데이터 가져오기를 누르면 가지고 올 수 있는 데이터의 리스트가 나오고, 여기서 가장 아래에 있는 자세히를 눌러주면 새로운 창이 나오며 가져올 수 있는 모든 데이터 목록이 나옵니다.

 

파일은 기본이고 데이터 서버도 연결이 가능하며, 파이썬이나 R로 이루어진 코딩도 지원하니 거의 불러오지 못할 데이터가 없다고 해도 과언이 아닐 정도인데요. 얼마 전 보지 못했던 옆에 베타라고 되어있는 새로운 리스트 목록이 보이네요. 이는 새롭게 추가된 목록인 것 같고 아직 100% 완전하지 못하다는 의미인 것 같은데요, 이들도 곧 베타라는 타이틀이 없어지고 또 다른 목록이 계속 추가될 것으로 예상됩니다.

이 중에서 사용자가 가지고 올 데이터 소스를 골라주면 자동으로 연결됩니다.

몇 번의 클릭만으로 데이터를 가지고 올 수 있으니 기존에 사용하던 파이썬 (Python), 알 (R)  보다 아주 쉽게 데이터를 가지고 올 수 있으며, 어려운 프로그래밍 언어를 따로 공부하지 않아도 데이터 분석의 시각화가 가능하게 되었습니다.

 

우선 가장 간단한 엑셀 파일 하나를 가져오는 경우를 말씀드리겠습니다.

 

위쪽의 이미지에서 처럼 데이터 가져오기를 선택하면 가장 위에 Excel 통합문서가 보이는데, 이를 선택하면 파일 탐색기가 나오고 여기서 원하는 파일을 선택하면 자동으로 연결됩니다.

 

그럼 새 창이 열리며 엑셀 파일 안에 있는 모든 시트 (Sheet)를 보여주게 되는데, 여기서 원하는 시트를 선택한 뒤 ‘데이터 변환’ 버튼을 누르면 파워쿼리 에디터로 엑셀 시트 안에 있는 데이터를 가져오게 됩니다. (만일 데이터를 파워쿼리 에디터에 가져오는 걸 원치 않으시면  ‘로드’를 선택하면 됩니다.) 

 

시트의 선택 개수는 제한이 없으며,’데이터 변환’을 선택해 가져오기가 완료되면 아래와 같은 화면으로 바뀌게 됩니다.

오른쪽 쿼리창에 가지고 온 시트의 이름과 개수를 보여주며, 쿼리를 선택하면 작업 창에 데이터를 보여줍니다. (이제 파워쿼리 에디터로 데이터를 불러왔으니 시트라 하지 않고 쿼리라 하겠습니다) 만일 쿼리의 이름이 마음에 들지 않으면 쿼리창에서 이름을 더블클릭하거나 오른쪽 쿼리 설정의 속성에서 이름을 바꾸어주면 됩니다. 쿼리 개수가 많아지면 나중에 혼동이 올 수 있으니 처음부터 알아보기 쉬운 이름으로 바꾸어주시면 좋습니다.

 

이런 식으로 데이터를 가지고 와 파워쿼리 에디터에서 필요한 부분을 바꾸어주면 데이터 전처리를 위한 준비는 끝났다고 보면 되겠네요.

 

다음부터는 가지고 온 데이터를 어떻게 연결하고, 수정하여 파워비아이에 필요한 데이터의 형태로 만들기 위해 파워쿼리 에디터에서 제공하는 여러 버튼과 사용 방법에 대해 자세히 다루어 보도록 하겠습니다.

 

데이터 전처리가 필요한 이유는 아주 간단하고 명확합니다. 엑셀이나 웹상에서 가지고 온 데이터는 바로 파워비아이에 사용할 수가 없기 때문이죠.

 

회사에서 가장 많이 사용되는 것이 엑셀이기 때문에 엑셀을 예로 들겠습니다. 스프레드시트의 대명사로 통하며, 회사에서 서류를 만들 때 없어서는 안 될 소프트웨어가 엑셀이라는 건 다들 공감하실 겁니다. 또한 여러 데이터분석 프로그램에서 엑셀 시트를 불러와 데이터 작업을 할 만큼 널리 사용되는 소프트웨어이기도 하지요.

 

특히 숫자를 다룰 때는 타의 추종을 불허한다고 해도 과언이 아니며 셀 안에 있는 숫자나 문자를 사용자가 원하는 대로 꾸밀 수 있다는 것은 엑셀의 가장 큰 장점입니다. 하지만 이러한 장점이 데이터 분석에 있어서 단점으로 바뀌게 되는데요, 너무나 자유로운 편집이 데이터 분석에 있어서 걸림돌이 된다는 것입니다. 그래서 이러한 ‘자유’를 파워쿼리 에디터에서 ‘구속’으로 바꾸어 줘야 데이터 분석에 이용할 수 있습니다.

 

데이터를 다루는데 엑셀과 파워쿼리 에디터의 차이점은 다음과 같습니다.

  • 엑셀: 사용자가 원하는 대로 데이터를 구성
  • 파워쿼리 에디터: 파워비아이가 원하는 데로 데이터를 구성

즉 엑셀은 사용자가 주체이지만, 파워쿼리 에디터는 데이터 형식을 파워비아이가 원하는 데로 맞추어 줘야 한다는 것입니다.

 

간단한 예를 들겠습니다.

반별 국, 영, 수 점수의 중간, 기말별 평균성적을 나타낸 표입니다. 우리가 늘 접하는 형식이죠. 하지만 불행하게도 이러한 표는 데이터 분석을 위해서 사용이 될 수 없습니다.

 

데이터 분석을 위해서는 전처리를 통해 아래와 같이 변형이 되어야 파워비아이에서 시각화 작업이 가능합니다.

 

데이터 전처리의 가장 기본은 행에 포함되는 열의 구성이 유니크 (Unique)한 구성을 가져야 한다는 것입니다.

여기서 예를 들면 첫 번째 행은 {중간, 국어, 1반, 83} 이고 두 번째는 {중간, 국어, 2반, 82}, 이런 식으로 총 18개의 행을 가진 데이터입니다.

다시 말해서 {학기, 과목, 반, 점수}로 구성된 18개의 행의 데이터가 중복 없이 구성되어야 합니다.

 

아까 말씀드린 엑셀에서 작성한 표를 파워쿼리 에디터로 가지고 와 {학기, 과목, 반, 점수}로 구성된 하나의 데이터로 ‘구속’을 시켜주는 작업이 데이터 전처리 과정입니다.

 

데이터를 ‘구속’시키는 이유는 아주 간단합니다.

지금 예제로 다루는 데이터는 몇 줄 안 되는 데이터지만, 수만 아니 수십만 개의 데이터를 다루려면 아주 강한 규칙이 필요하며, 데이터 분석의 오류를 없애기 위한 일련의 조치입니다.

이는 파워쿼리를 이용해 전처리를 진행하면 자연스럽게 알 수 있는 것이므로 지금은 이 정도로만 설명하겠습니다.

 

하지만 데이터 전처리가 되었다고 시각화를 위한 준비가 끝난 것은 아니고 전처리된 데이터를 다시 여러 수식을 이용해 필요한 값을 추출하는 과정이 필요합니다.  (편의상 후처리라 하겠습니다) 

 

아래의 그림을 마지막으로 이 글을 마무리하겠습니다.

엑셀 데이터도 가공하지 않고 사용할 수 있지만, 이는 극히 드물다고 생각해야 하며, 파워쿼리 에디터를 이용해 데이터 전처리를 하면 원하는 표와 그래프 및 값을 얻을 수 있지만 사실 이것으로도 부족하며, DAX라는 수식을 이용해 데이터 후처리까지 진행해야 거의 원하는 모든 값을 얻을 수 있습니다.

편의상 10%, 60%, 100%라고 했지만, 파워쿼리 에디터에서도 잘 가공을 한다면 거의 90% 가까이 원하는 결과를 얻을 수 있습니다. 하지만 이것도 어느 정도 한계는 있으며, DAX를 이용한 후처리가 필요한 경우가 대부분을 차지하기 때문입니다.

파워쿼리와 엑셀의 차이점은 많이 있습니다.

수식의 입력이나 함수의 사용이나 뭐 하나 같은 것이 없습니다.

하지만 가장 큰 차이점은 '단위의 구성'입니다.

앞에서도 간단히 설명해 드렸지만 이에 대한 이해가 없다면 파워쿼리로 작업 시 많은 혼동을 가지고 옵니다.

엑셀을 잠시 보겠습니다.

빨간색 박스가 보이죠?

엑셀은 Cell이라는 단위로 구성이 되어있습니다.

셀 단위의 구성으로 인해 좀 더 독립적이고 자유롭게 이용을 할 수 있습니다.

즉 A3, C4, C6는 독립적인 단위이고, C7=A3*(C4+C6)라는 수식을 이용한다면 셀 C7에 수식의 결과치를 나타냅니다.

또 다른 셀에 숫자나 문자를 입력해 또 다른 수식을 만들 수 있습니다.

반면 쿼리는 어떨까요?

쿼리는 엑셀만큼 독립적이지는 않습니다.

쿼리에는 Cell의 개념이 없고 열의 개념을 가지고 있습니다.

(참고로 지금 빨간색 박스로 표시한 것은 열이라고 이야기를 합니다. 영문 버전은 Column이라고 표시를 하는데 약간 헷갈리네요)

파워쿼리는 열이라는 단위로 구성이 되어있기 때문에 열 전체가 한 덩어리로 움직입니다.

엑셀처럼 A3* A4라는 애초에 불가능하다는 이야기입니다. (물론 완전히 불가능하다는 이야기는 아니지만 이런 수식을 만들기 위해서는 많은 작업이 필요합니다)

열의 이름으로 단위가 구성되며 곱셈을 원한다면 [Sun]*[Mon]이라는 수식이 성립됩니다.

그럼 자동으로 [Sun]의 1행과 [Mon]의 1행이 곱해져 결과치를 보여주게 됩니다.

여기서 가장 중요한 것 중의 하나가 바로 열의 속성인데 위를 보시면 [Date]라는 열은 속성이 날짜이며, 나머지 열들은 속성이 숫자로 되어있습니다.

만일 숫자로 속성이 되어있는 열의 중간에 다른 속성 (날짜, 혹은 글자)이 있다면 Error로 표시가 됩니다.

그리고 이 Error를 수정하지 않는 한 다음 작업도 진행이 되지 않습니다.

왜 그럴까 하는 생각도 들지만 방대한 분량의 데이터를 취급하기 위한 최선의 방법이 아닐까 합니다.

이야기가 길어질 것 같으니 여기서는 차이점만 간단히 말씀드리겠습니다.

파워쿼리를 시작할 때 가장 먼저 잡아야 할 개념은 열 단위로 구성이 된다는 것입니다.

그리고 계산이 이루어질 경우 열의 같은 행끼리 이루어지며 (예를 들어 [Mon]+[Tue]라고 수식을 입력한다면 1행은 1행끼리, 2행은 2행끼리 자동으로 수식이 진행됩니다) 2행과 3행으로 크로스 되어서 진행이 되지 않은 다는 것입니다.

엑셀처럼 자유롭게 한 열에 여러 수식을 사용할 수도 없으며, 반드시 정해진 방법에 따라 열을 기본 단위로 해서 모든 수식이나 열의 추가가 이루어진다는 것을 꼭 염두에 두시고 시작을 하셨으면 합니다.

처음 접하시는 분들은 약간 혼동이 올 수도 있겠지만, 어느 정도 익숙해지면 데이터를 변환하는데 이만한 툴은 없을 거라 생각을 하시게 될 것입니다.

'파워쿼리 > 파워쿼리' 카테고리의 다른 글

파워쿼리 에디터의 이해  (0) 2021.03.27

파워비아이에서 데이터를 분석해 시각화하기 위해서 가장 선행이 되어야 할 것은 외부의 데이터를 파워비아이로 가지고 오는 것입니다.

외부의 데이터가 엑셀이건 엑세스건 웹상에 있는 테이블이건 파워비아이 에서는 아주 다양한 소스의 데이터를 파워비아이로 가지고 올 수 있죠.

이렇게 가지고 온 데이터는 가장 먼저 파워쿼리 에디터라는 툴을 거치게 됩니다.

파워 쿼리 에디터는 엑셀의 형태를 하고 있지만 약간은 다른 형태의 스프레드시트입니다.

엑셀에서도 파워 쿼리를 기본으로 내장하고 있어 복잡한 데이터를 엑셀로 가져와 파워쿼리 내에서 작업을 끝낸 뒤 다시 엑셀로 결과물을 보내어 엑셀 작업을 원활하게 합니다.

파워비아이 에서도 똑같은 절차를 거쳐 복잡한 데이터를 좀 더 간소화한 뒤 파워비아이로 보내서 수식 작업을 원활하게 할 수 있도록 도와줍니다.

데이터를 Import 했다면 아래와 같은 테이블이 보입니다.

사진 설명을 입력하세요.

나중에 천천히 설명을 드리겠지만 위쪽에는 입력 도구로 이루어져 있으며, 아래의 왼쪽은 엑셀의 아래에 있는 탭과 비슷한 것으로 현재의 쿼리를 보여주고, 가운데는 엑셀과 비슷한 형태를 가진 필드이고, 오른쪽은 쿼리의 진행 단계를 보여주는 창으로 구성되어있습니다.

파워쿼리는 엑셀이나 DAX의 수식과는 다른 M-Code 또는 M-Language라는 언어를 사용하고 있으며, 이를 이용하면 수식을 좀 더 유연하고 다채롭게 만들 수 있습니다.

하지만 위쪽에 나열된 입력 도구를 이용하여 데이터를 변환하면, M-Code를 모른다고 해도 큰 무리 없이 데이터를 원하는 방향으로 만들 수 있습니다.

M-Code는 한마디로 정형화된 형태 이외에 약간은 다른 형태를 원하거나, 과정을 좀 더 간소화시키고 싶거나 한 경우에 사용이 되므로 몰라도 큰 불편은 없지만 알아둔다면 많은 도움이 될 수 있습니다.

이처럼 파워쿼리 에디터를 통해 데이터를 최대한 정리한 다음 (피벗, 언피벗 같은...) 이를 다시 파워비아이에 적용을 시켜 본격적인 파워비아이 작업을 하게 되는 것이죠.

여기서 가장 먼저 생각할 것은 데이터를 M-Code를 이용해 변환하는 것이 좋을지, 아니면 업로드를 시킨 뒤 파워비아이의 DAX를 이용해 수식을 사용하는 것이 좋을지를 결정한 뒤 데이터 변환작업을 진행하는 것이 좋습니다.

때로는 M-Code가 때로는 DAX가 더 적합하기 때문이죠.

정답은 없지만, 데이터 분석하기 전 꼭 선행되어야 할 부분이 아닐까 합니다.

다음에는 파워쿼리의 사용 방법과 M-Code에 관련된 사항에 대해서도 글을 올리겠습니다.

'파워쿼리 > 파워쿼리' 카테고리의 다른 글

파워쿼리와 엑셀의 가장 큰 차이점  (4) 2021.03.27

+ Recent posts