브라이틱스(Brightics)에서 두 데이터 세트를 병합할 때 사용하는 Join
을 알아본다.
Transform Pre-Processing
※ 본 내용은 Load
함수 블럭에서 join_data_group_members.csv 와 join_data_member_room.csv 파일을 불러온 후에 진행한다.
※ join_data_group_members.csv 다운받기 [클릭]
※ join_data_member_room.csv 다운받기 [클릭]
※ 모델 json 파일 다운받기 [클릭]
개요
Bind Row Column
블럭은 단순히 row 방향이나 column 방향으로 데이터를 이어붙인 것이라면, 데이터를 특정 변수 기준으로 공통된 row만 남기거나 한 쪽 데이터 세트에 붙이는 연산은 Join
블럭이다.
※ Bind Row Column
포스팅 바로가기 -> [클릭]
위쪽 Load
블럭에는 join_data_group_members.csv 를, 아래쪽 Load
블럭에는 join_data_member_room.csv 를 불러왔다. 각각의 데이터를 확인하면 다음과 같다.
설정
Join
블럭의 설정 창은 다음과 같다.
Join
블럭은 반드시 두 개의 데이터 세트 입력을 받는다. 이 때 Load
블럭에서 바로 입력을 받는 경우 Load
블럭의 이름을 바꿔주지 않으면 어떤 데이터가 왼쪽(left)에 위치하는지 알기 어렵다. Inputs 부분에서 어떤 블럭이 left_table 로 지정되는지 확인할 수 있으니 잘 확인하도록 하자.
두 데이터는 member 변수와 name 변수가 그룹 멤버 이름으로 각 데이터 세트를 병합할 수 있는 기준으로 사용할 수 있다. join 연산에 사용할 변수를 각각 Left Keys 와 Right Keys 항목에 다음과 같이 각각 할당해준다.
Join Type 의 경우 여섯 종류의 join 연산을 지원한다. 사용자가 이해하기 쉽게 그림으로 표기되어있으며 마우스 커서를 각 그림 위에 위치(hover)시킬 경우 툴팁이 조그맣게 뜨면서 어떤 연산인지 알려준다.
왼쪽부터 차례대로 join 연산의 종류는 다음과 같다.
- Full Outer Join
: A와 B의 모든 변수 및 row를 보존하여 병합
- Left Join
: A와 B의 모든 변수를 보존하되 A를 기준으로 공통된 row만 보존(중요!)
- Right Join
: A와 B의 모든 변수를 보존하되 B를 기준으로 공통된 row만 보존
- Inner Join
: A와 B의 모든 변수를 보존하되 A와 B의 공통된 row만 보존(중요!)
- Left Excluding Join
: A의 변수만 보존하고 A와 B의 공통된 row는 제거
- Right Excluding Join
: B의 변수만 보존하고 A와 B의 공통된 row는 제거
Left_Suffix 와 Right_Suffix 는 연산 대상이 되는 두 데이터에 같은 이름의 변수가 있을 경우 붙여주는 접미사 설정과 관련된 것이다. 변경을 원하면 직접 바꿔주면 된다.
Sort 는 자동으로 결과를 정렬해준다고는 하는데 어떤 변수를 기준으로 하는지 명확하지 않아 결과 정렬이 필요하다면 Sort
블럭 사용을 권장한다.
※ Sort
포스팅 바로가기 -> [클릭]
결과
상기 방법으로 데이터를 left join으로 병합한 결과는 다음과 같다.
Join
블럭을 사용할 때는 입력되는 데이터의 특정 변수만 선별하여 join 연산을 할 수 없기에 join 연산 이전에 Select Column
함수 블럭을 사용하거나, Join
대신 Quert Executor
함수 블럭을 사용하는 것 또한 방법이다.
※ Select Column
포스팅 바로가기 -> [클릭]
※ Query Executor
포스팅 바로가기 -> [클릭]