본문 바로가기
파이썬(Python)

판다스 / pandas 4 - 데이터 병합(merge, concat)

by 무지성개발자 2021. 8. 6.

- 데이터 준비 -

PATH = 'E:/developer/lab/'

transaction_1 = pd.read_csv(PATH + 'transaction_1.csv')
transaction_2 = pd.read_csv(PATH + 'transaction_2.csv')
transaction_detail_1 = pd.read_csv(PATH + 'transaction_detail_1.csv')
transaction_detail_2 = pd.read_csv(PATH + 'transaction_detail_2.csv')


데이터 병합이란?


- n 개의 데이터를 한개의 데이터로 합치는 과정입니다.

- 합쳐지는 DF간에 공통의 컬럼이 존재해야합니다. 단, concat 제외

- DF에서는 일반적으로 join으로 표현할수 있습니다.

 


데이터 병합 => merge()


jojn_data = pd.merge(transaction_detail, transaction, on='transaction_id', how='left')
jojn_data.head()

 

# on : 2개의 DF에서 공통된 컬럼을 적습니다.

# how : 겹치지 않는 부분을 왼쪽 DF 또는 오른쪽 DF로 남길수 있습니다.

         : outer 를 사용하면 모두 남길수 있습니다. 합집합의 기능

 

 

jojn_data1 = pd.merge(jojn_data, customer, on='customer_id', how='left')
jojn_data1.head()

 


데이터 병합 => concat()


- axis 의 값에 의해 방향성이 결정됩니다.

- 컬럼 수와 종류가 동일해야합니다.

 

transaction = pd.concat([transaction_1, transaction_2])
transaction[4999-1:4999+4]

 

# 합쳐지는 부분 확인

transaction = pd.concat([transaction_1, transaction_2], ignore_index=True)
transaction[4999-1:4999+4]

 

transaction_detail = pd.concat([transaction_detail_1, transaction_detail_2], ignore_index=True)
transaction_detail[4999-1:4999+4]