명시적인 키 변수가 있는 경우
잘 정제된 데이터일지라도 데이터가 키 변수를 기준으로 나뉘어 저장되는 경우가 매우 흔하다. 이때 sql에서는 join을 이용하여 해결하며, python에서는 merge를 이용하여 해결한다.

- pandas.merge
키 변수를 기준으로 두 개의 데이터 프레임을 병합하는 함수이다.
-주요 입력
▷left: 통합 대상 데이터 프레임 1
▷right: 통합 대상 데이터 프레임 2
▷on: 통합 기준 key 변수 및 변수 리스트
▷left_on: 데이터 프레임 1의 key 변수 및 변수 리스트(이름이 다른 key 경우)
▷right_on: 데이터 프레임 2의 key 변수 및 변수 리스트(이름이 다른 key 경우)
▷left_index: 데이터 프레임 1의 인덱스를 key 변수로 사용할 지 여부(이름이 다른 key 경우)
▷right_index: 데이터 프레임 2의 인덱스를 key 변수로 사용할 지 여부(이름이 다 key 경우)
## 코드 실습 ##
import os
os.chdir(r"C:\Users\82102\Desktop\데이터전처리\머신러닝을 위한 필수 전처리\Part 4. 머신러닝을 위한 필수 전처리\데이터")
import pandas as pd
- merge: on 활용
df1 = pd.read_csv("Telco_churn_customer_churn.csv")
df2 = pd.read_csv("Telco_churn_customer_info.csv")
df1.head(1)

df2.head(1)

merged_df = pd.merge(df1, df2, on='customerID')
- left_on, right_on 활용
df2.rename({"customerID":"ID"}, axis=1, inplace=True) # 실습을 위해 df2의 customerID 컬럼명을 ID로 변환
df2.head(1)

merged_df = pd.merge(df1, df2, left_on='customerID', right_on='ID')
merged_df.head(1) # 키 컬럼 두개가 모두 살아있음

merged_df.drop('ID', axis=1, inplace=True) # 키 컬럼 중 하나 삭제
'데이터 전처리 > 머신러닝을 위한 필수 전처리' 카테고리의 다른 글
| 결측치 문제 (0) | 2022.12.13 |
|---|---|
| 데이터 파편화 문제(5)(데이터 요약이 필요한 경우) (0) | 2022.12.13 |
| 데이터 파편화 문제(4)(거리 기반 병합이 필요한 경우) (0) | 2022.12.13 |
| 데이터 파편화 문제(3)(포맷이 다른 키 변수가 있는 경우) (0) | 2022.12.12 |
| 데이터 파편화 문제(1)(파일이 분산 저장되어 있는 경우) (0) | 2022.12.12 |