데이터 병합
여러 개의 데이터 테이블을 특정한 열을 기준으로 병합하는 노드입니다.
설명
데이터 병합 노드는 여러 개의 데이터셋을 공통 열을 기준으로 수평으로 병합합니다. 속성에서 입력 포트를 추가하여 원하는 개수만큼 연결할 수 있습니다.
기준 열의 값이 같은 행끼리 매칭되며, 첫 번째(왼쪽) 데이터에 나머지 데이터의 열들이 추가됩니다. 입력이 세 개 이상이면 왼쪽부터 순서대로 병합됩니다.
기본적으로 모든 데이터셋에 공통으로 존재하는 행만 남습니다. 병합 방식은 속성에서 변경할 수 있습니다.
포트 구성
입력 포트
- 데이터셋: 공통 열을 가진 데이터셋입니다. 속성에서 입력 포트를 동적으로 추가하여 원하는 개수만큼 연결할 수 있습니다.
출력 포트
- 데이터셋: 기준 열을 통해 병합된 하나의 데이터
속성
입력 포트 추가
속성 탭에서 입력 데이터셋 포트를 추가할 수 있습니다. 세 개 이상의 데이터셋을 한 번에 병합할 때 사용하며, 첫 번째(왼쪽) 포트를 기준으로 이후 포트가 순서대로 병합됩니다.
기준 열
기준 열은 왼쪽 데이터에서 선택 가능하며 모든 데이터가 공통으로 가지고 있는 컬럼을 선택할 수 있습니다.
공통 컬럼을 선택하지 않으면 모든 데이터셋에 공통으로 존재하는 열이 자동으로 기준이 됩니다.
병합 방식
행을 매칭하는 방식을 선택합니다.
- 교집합(inner): 모든 데이터셋에 공통으로 존재하는 행만 남깁니다. (기본값)
- 합집합(outer): 어느 한 데이터셋에라도 존재하는 행을 모두 남기고, 채울 값이 없는 칸은 비웁니다.
- 왼쪽 기준(left): 첫 번째(왼쪽) 데이터셋의 행을 모두 남기고, 나머지 데이터셋에서 매칭되는 값만 채웁니다.
노드 연결 설정
다른 노드의 출력 포트를 데이터 병합 노드와 연결할 때, 여러 입력 포트 중 어느 포트에 연결할지 선택할 수 있는 노드 연결 설정 팝업이 표시됩니다.
- 왼쪽(첫 번째 포트): 데이터 병합 시 기준이 되는 테이블
- 이후 포트: 기준 테이블에 순서대로 맞추어 추가되는 테이블
세 개 이상 연결한 경우, 왼쪽(첫 번째)부터 순서대로 병합됩니다.
자세한 내용은 다중 포트 연결을 참고하세요.
예제
데이터 설명
두 개의 데이터셋을 병합하는 예제입니다.
학생의 기본 정보와 수강 과목 정보를 student_id 기준으로 합칩니다.
두 데이터셋 모두에 존재하는 학생만 남도록 병합됩니다.
- students.csv: 학생의 기본 정보 (5명)
- 컬럼:
student_id,name,age,major
- 컬럼:
| student_id | name | age | major |
|---|---|---|---|
| S001 | 김민수 | 21 | Computer Science |
| S002 | 이서연 | 22 | Mathematics |
| S003 | 박지훈 | 23 | Economics |
| S004 | 최유진 | 20 | Design |
| S005 | 정하늘 | 24 | Statistics |
- courses.csv: 수강 과목 및 성적 정보 (5명)
- 컬럼:
student_id,course_id,course_name,grade
- 컬럼:
| student_id | course_id | course_name | grade |
|---|---|---|---|
| S001 | C101 | Python Programming | A |
| S002 | C102 | Linear Algebra | B+ |
| S003 | C103 | Microeconomics | A- |
| S004 | C104 | UX Design | B |
| S006 | C105 | Data Analysis | A |
S005는 수강 과목이 없고, S006은 학생 정보에 없는 데이터입니다.
데이터 병합 예제
노드 설정:
- 기준 열:
student_id - 왼쪽 데이터: students.csv
- 오른쪽 데이터: courses.csv
결과:
| student_id | name | age | major | course_id | course_name | grade |
|---|---|---|---|---|---|---|
| S001 | 김민수 | 21 | Computer Science | C101 | Python Programming | A |
| S002 | 이서연 | 22 | Mathematics | C102 | Linear Algebra | B+ |
| S003 | 박지훈 | 23 | Economics | C103 | Microeconomics | A- |
| S004 | 최유진 | 20 | Design | C104 | UX Design | B |
요약:
student_id를 기준으로 병합됨- 두 데이터셋 모두에 존재하는 학생만 남음 (
S001~S004) - 왼쪽에만 있는
S005, 오른쪽에만 있는S006은 제외됨 - 총 행 개수: 4행, 열 개수: 7개
