명시적인 키 변수가 있는 경우

잘 정제된 데이터일지라도 데이터가 키 변수를 기준으로 나뉘어 저장되는 경우가 매우 흔하다. 이때 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) # 키 컬럼 중 하나 삭제

 

+ Recent posts