Development/Python
Pandas Merge시 행 증가하는 문제 원인 및 해결
성딱이
2021. 10. 1. 17:31
반응형
외부 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에 중복이 있는지 없는지 부터 잘 살피자...
끄읏...
반응형