본문 바로가기
Development/Python

Pandas Merge시 행 증가하는 문제 원인 및 해결

by 성딱이 2021. 10. 1.
반응형

외부 API를 이용해서 데이터를 불러올 일이 있었다.

 

DataFrame1 (df1) -> col1, col2

DataFrame2 (df2) -> col1, col3

DataFrame3 (df3) -> col1, col4

MasterDataFrame -> col1, col2, col3, col4

 

현상 : col1을 기준으로 하나의 데이터프레임으로 병합하니 Row의 수가 배로 늘었다!

원인 : 각 데이터프레임에서 설정된 키가 duplicate되어있어 Pandas의 Merge를 활용 시 Row의 수가 늘어난 것 (출처 확인)

해결 : Merge하기 전 각각의 데이터프레임에 대해서 duplicated된 키를 제거 해준다.... 부끄럽다...

from functools import reduce
import pandas as pd

df_list = [df1, df2, df3]

new_df_list = []
for i in range(len(df_list)):
    part_df = df_list[i].copy()
    part_df.drop_duplicates(subset='col1', inplace=true)
    new_df_list.append(part_df.copy())
master_df = reduce(lambda x,y : pd.merge(x,y, on='col1'), new_df_list)

 

앞으로 Merge해주기 전에 Key에 중복이 있는지 없는지 부터 잘 살피자... 

 

끄읏...

 

출처 : https://stackoverflow.com/questions/37095161/number-of-rows-changes-even-after-pandas-merge-with-left-option

 

 

반응형

댓글