[Pandas] DataFrame 합치기, 병합하기
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