[ 파워쿼리 ] 테이블 컬럼 한번에 변경하기

2024. 11. 25. 19:30Power BI/파워 쿼리 ( Power Qeury )

728x90
반응형

파워 쿼리를 이용한 컬럼명 한 번에 변경하는 방법을 알아보도록 하겠습니다.

아래와 같이 데이터를 준비해 주도록 하겠습니다.

월별 데이터를 나타내 주는테이블 입니다.

 

 

우선 해당 테이블을 파워쿼리 창으로 올려 주도록 하겠습니다.

다음과 같이 파워쿼리 창에 데이터가 올라간 것을 볼 수 있습니다.

월별 데이터인 것은 알 수 있으나 뒤에 .data 접미사가 살짝 불편한 느낌이 듭니다.

 

시간이 많으니 컬럼명을 하나하나씩 디테일하게 변경을 시도해 봅니다.

2개를 했는데 벌써 힘든 느낌이 듭니다. 

이때 활용할 수 있는 방법입니다.


테이블을 만들어 변경하는 방법

 

이 방법이 처음 하시는 분에게는 가장 쉽게 접근할 수 있는 방법입니다.

fx 버튼을 누른 후에 Table.ColumnNames 함수를 입력해 줍니다.

Table.ColumnNames(table as table) as list

위의 구문을 보시면 ColumnNames안에는 테이블 형식으로 넣어주면 리스트 형식으로 반환한다는 내용입니다.

아래의 예시를 보시면 적용된 단계 중 #"변경된 유형"을 넣어주니 컬럼이 List 형식으로 나오는 것을 볼 수 있습니다.

 

 

좀 더 익숙하게 변경하기 위해서 해당 리스트를 테이블로 만들어 보도록 하겠습니다.

[ 변환 ] - [ 테이블로 ]를 클릭해 주도록 하겠습니다.

 

아래와 같은 창이 나오면 바로 확인을 눌러 줍니다.

 

 

이제 자주 보던 형식으로 변경이 되었습니다.

마음이 조금 편안해집니다.

이제 해당 항목을 변경하기 위해서 우측에 열 추가를 해 보도록 하겠습니다.

 

 

Column1 컬럼에서 우클릭 후 열 복제를 선택 후 줍니다.

 

 

아래와 같은 테이블이 생성이 되는 것을 볼 수 있습니다.

.data를 제거하기 위해서는 두 가지 방법이 있을 것 같습니다.

 

① 구분 기호 앞 텍스트 추출

[ 변환 ] - [ 추출 ] - [ 구분 기호 앞 텍스트 ]를 클릭해 줍니다.

 

그럼 아래와 같이 .data 제거가 가능합니다.

 

[ 파워쿼리 ] 텍스트 추출하기

파워쿼리를 이용한 텍스트 추출 방법을 알아보도록 하겠습니다.[ 열 추가 ] - [ 추출 ]에 있는 다양한 방법 들에 대해서 알아보도록 하겠습니다.구분세부사항엑셀길이문자의 수를 반환 len처음

sunconnector.tistory.com

728x90

 

② 값 바꾸기

아래와 같이 Column1-복사 컬럼에서 우클릭 후 값 바꾸기를 눌러 줍니다.

 

그리고 아래와 같은 창이 뜨면 다음과 같이 입력해 줍니다.

 

[ 파워쿼리 ] null 값 바꾸기 ( 결측값 처리 )

파워쿼리를 이용한 null값 변경하는 방법을 알아보도록 하겠습니다.보통 결측값처리라고 이야기하는 방법입니다.아래로 채우기 아래와 같은 데이터를 준비해 주도록 하겠습니다.아래의 데이터

sunconnector.tistory.com

반응형

 

 

여기서부터 살짝 어려울 수 있는데 한번 잘 봐주십시오.

우선 현재 컬럼명을 Old와 New로 변경해 주었습니다.

그리고 수식창을 한번 보도록 하겠습니다.

Table.RenameColumns(table as table, renames as list, optional missingField as nullable number) as table

위에서 한번 언급한 것과 같이 테이블 형식을 넣어주고,

리스트 형식으로 변경값을 넣어 주면 테이블 형식으로 반환하겠다는 의미입니다.

문자로 보면 어려우니 아래의 예시를 봐주시면 됩니다.


바꾼 형식을 보시면 { "Column1", "Old" }가 리스트 형식으로 되어 있는 것을 볼 수 있습니다.

그리고  { "Column1 - 복사", "New" }도 리스트 형식으로 되어 있으며 

각각의 항목이 다시 List로 되어 있는 것을 볼 수 있습니다.

 

Nested Table처럼 Nested List 형의 구조로 되어 있는 것을 볼 수 있습니다.

 

해당 형식으로 변경하기 위해서 Table.ToRows 함수를 사용해 줍니다.

위의 박스 안에 있는 내용을 다시 한번 생각해 보시고 아래의 구조를 한번 봐주십시오

{ "Column1", "Old" } 과  { "Column1 - 복사", "New" }가 리스트의 형식으로 되어 있고

각각의 열이 다시 List 형식으로 쌓여 있는 것을 볼 수 있습니다.

 

 

적용된 단계의 이름을 "new_columns"로 변경해 주고 

 

 

 

fx를 눌러 새로운 단계 추가 후 = "#변경된 유형"이라고 입력해 줍니다.

 

 

아까 일일이 입력해 주던 수식에 아래와 같이 "new_columns"를 입력해 보도록 하겠습니다.

 

 

그리고 닫기 및 로드를 눌러 표로 데이터를 출력하면 

컬럼명이 모두 변경이 된 것을 볼 수 있습니다.


 

리스트를 이용한 변경

 

이번에는 리스트를 이용한 변경을 알아보도록 하겠습니다.

다음과 같이 List 형식으로 컬럼명을 만든 상황에서 

List.Transform 함수를 사용해 보도록 하겠습니다.

List.Transform(list as list, transform as function) as list

Table.TransformColumns와 비슷한 함수이지만 리스트를 변경해 주는 함수입니다.

 

 

우선 현재의 리스트를 old라도 단계 이름을 변경해 줍니다.

 

그리고 fx를 눌러서 새로운 단계를 불러오도록 합니다.

그리고 아까 이야기드린 List.Transform 함수를 사용해서 구분기호 앞의 문자를 추출해 줍니다.

 

 

그리고 마지막으로 List.Zip 함수를 사용해 보도록 하겠습니다.

List.Zip(lists as list) as list

리스트 형식의 리스트를 모아서 ( nested list ) list 형식으로 반환하겠다는 내용입니다.

그럼 아까 Table.ToRows 함수를 사용했을 때와 같은 결과를 얻을 수 있습니다.

 

아까와 같이 적용된 단계의 이름을 new_columns로 변경 후 아까와 같이 반복하면 동일한 결과를 얻을 수 있습니다.

 

 

728x90
반응형