데이터 분석/Python

[Pandas] DataFrame 합치기, 병합하기

eunki 2021. 4. 27. 17:58
728x90

DataFrame 합치기 (concat)

row나 column 기준으로 단순하게 이어 붙이기

 

 

1. Row 기준으로 합치기

pd.concat에 합칠 데이터 프레임을 list로 합쳐준다.

row를 기준으로 합치고자 할 때는 sort=False 옵션을 주어 순서를 유지한다.

 

 

 

df_concat.reset_index() : 인덱스 초기화

 

 

 

df_concat.reset_index(drop=True) : 새로 index column이 생성되지 않고 인덱스 초기화

 

 

 

 

2. column 기준으로 합치기

column을 기준으로 합치고자 할 때는 axis=1 옵션 부여

 

 

 

 


DataFrame 병합하기 (merge)

특정 고유한 키(unique id) 값을 기준으로 병합하기

 

pd.merge(left, right, on='기준컬럼', how='left')

left와 right는 병합할 두 DataFrame을 대입한다.

on에는 병합의 기준이 되는 column을 넣어 준다.

how에는 'left', 'right', 'inner', 'outer' 4가지의 병합 방식 중 한 가지를 택한다.

 

 

먼저, 비교를 위해 df2 에서 5개의 데이터를 고의적으로 drop 해준다.

 

 

 

 

① how = 'left'

left DataFrame에 키 값이 존재하면 해당 데이터를 유지하고, 병합한 right DataFrame의 값은 NaN으로 대입

 

 

 

 

② how='right'

right DataFrame을 기준으로 병합

 

 

 

 

③ how='inner'

두 DataFrame에 모두 키 값이 존재하는 경우만 병합

 

 

 

 

④ how='outer'

하나의 DataFrame에 키 값이 존재하는 경우 모두 병합하고, 없는 값은 NaN으로 대입

 

 

 

 

column명은 다르지만 같은 성질의 데이터인 경우

left_on에는 left DataFrame에서 기준이 되는 column을,

right_on에는 right DataFrame에서 기준이 되는 column을 넣어 준다.

 

 

 

 

index를 기준으로 병합하는 경우

left_index=True, right_index=True

 

728x90