데이터 병합
- 각기 다른 두 개 이상의 DataFrame을 하나로 병합(Join, Merge)하여 결과 집합으로 만들어 내는 것을 의미
- Inner Join, Outer join, Left Join, Right Join이 있으며, 데이터의 구조와 문제에 맞게 적용
- Inner Join
- DataFrame 간 조인 조건을 만족하는 행을 합치는 것
- 테이블 A와 테이블 B에서 공통된 값을 기반으로 병합
- Key 값이 A, B에 모두 존재해야 병합 가능
- 일치하는 key 값이 없다면 결과 테이블에 포함되지 않음
- One-to-One (1:1)
Left DataFrame Right DataFrame Merged DataFrame A B C C D A B C D A1 B1 C1 C1 D1 A1 B1 C1 D1 A2 B2 C2 C2 D2 A2 B2 C2 D2 A3 B3 C3 C3 D3 A3 B3 C3 D3 - One-to-Many (1:N)
Left DataFrame Right DataFrame Merged DataFrame A B C C D A B C D A1 B1 C1 C1 D1 A1 B1 C1 D1 A2 B2 C2 C1 D2 A2 B2 C1 D2 A3 B3 C3 C1 D3 A3 B3 C1 D3 C2 D4 A2 B2 C2 D4
- Outer join
- 조건에 부합하지 않는 행까지 포함시켜 결합하는 방법
- DataFrame A와 테이블 B에 공통된 값이 아닌 부분까지도 같이 병합
- Key 값이 한쪽에만 있어도 결합 가능
- 정보가 없는 쪽은 결측 처리
- 양쪽 DataFrame의 모든 정보를 하나로 묶어서 가져옴
Left DataFrame Right DataFrame Merged DataFrame A B C C D A B C D A2 B2 C2 C1 D1 NaN NaN C1 D1 A3 B3 C3 C2 D2 A2 B2 C2 D2 A4 B4 C4 C4 D4 A3 B3 C3 NaN C5 D5 A4 B4 C4 D4 NaN NaN C5 D5
- Left Join
- 첫 번째 DataFrame(왼쪽)을 기준으로 두 번째 DataFrame을 결합하는 방법
- DataFrame A에 기초해서 병합을 진행
- 왼쪽 DataFrame(A)의 Key 값을 모두 보여줌
- 우측 DataFrame(B)에 정보가 없다면 결측 처리
Left DataFrame Right DataFrame Merged DataFrame A B C C D A B C D A2 B2 C2 C1 D1 NaN NaN C1 D1 A3 B3 C3 C2 D2 A2 B2 C2 D2 A4 B4 C4 C4 D4 A4 B4 C4 D4 C5 D5 NaN NaN C5 D5
- Right Join
- 두 번째 DataFrame(오른쪽)을 기준으로 첫 번째 DataFrame을 결합하는 방법
- DataFrame B에 기초해서 병합을 진행
- 오른쪽 DataFrame(B)의 Key 값을 모두 보여줌
- 좌측 DataFrame(A)에 정보가 없다면 결측 처리
Left DataFrame Right DataFrame Merged DataFrame A B C C D A B C D A2 B2 C2 C1 D1 A2 B2 C2 D2 A3 B3 C3 C2 D2 A3 B3 C3 NaN A4 B4 C4 C4 D4 A4 B4 C4 D4 C5 D5
DataFrame 병합 구현 방법
- Pandas의 merge 함수(method)
- ex) df1.merge(df2, on='c', how='inner')
- DataFrame의 join 메소드
- ex) df1.join(df2, on='c', how='inner')
Panas의 Index
- Pandas의 Series나 DataFrame은 각 행마다 Index가 있고, Index를 기준으로 병합이 이루어지기도 함
- Index를 기준으로 병합
- 중복된 컬럼이 있다면, 두 개의 컬럼 모두 DataFrame에 다른 이름으로 저장
데이터 연결
- 하나의 DataFrame에 다른 DataFrame 또는 Series를 연결(Concatenate)하여 결과 집합을 만듦
- 연결은 공유하는 Key 값을 사용하지 않고, 데이터를 기존 DataFrame 아래 (또는 우측)에 붙여 연결
Pandas의 연결 구현 방법
- ex) pd.concat(df1, df2, axis, ...)
- 축(axis)의 값을 어떻게 설정하느냐에 따라 연결의 방향이 달라짐
- axis = 0 : 행 방향 연결(위/아래 연결)
- axis = 1 : 열 방향 연결(좌/우 연결)
- 한쪽 DataFrame에 정보가 없는 경우 결측치(NaN) 생성
데이터 병합/연결 활용 예시
- 데이터 병합(Join/Merge)
- 서로 다른 성격을 가진 데이터를 분석용을 위한 하나의 데이터 셋으로 취합
- 데이터 연결(Concatenate)
- 여러 그룹으로 산재된 데이터를 하나로 취합할 때
'[KT] AIVLE School > 사전학습' 카테고리의 다른 글
데이터 조작 이해와 실무 (5) - 시계열 데이터 기초 (0) | 2025.03.12 |
---|---|
데이터 조작 이해와 실무 (4) - 데이터 그룹핑 (0) | 2025.03.12 |
데이터 조작 이해와 실무 (2) - 데이터 변경 (1) | 2025.03.12 |
데이터 조작 이해와 실무 (1) - 데이터 선택 (0) | 2025.03.12 |
데이터 사이언스 개요 (2) - 분석 환경 준비하기 (0) | 2025.03.12 |