반응형
외부 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에 중복이 있는지 없는지 부터 잘 살피자...
끄읏...
반응형
'Development > Python' 카테고리의 다른 글
[Python] Pandas Dataframe 내 정규표현식 반영 문자열 추출 (0) | 2021.10.07 |
---|---|
[Python] 사용자 정의 함수 사용 시 주의 할 점 (0) | 2021.10.06 |
[Python] Numa Node 0 에러 메세지 해결 (0) | 2021.09.30 |
[Python] 오늘 날짜, 영업일 계산(Business day, Working day), 두 날짜 사이의 리스트, 달의 마지막 날 출력하기 (2) | 2021.09.30 |
[Python] 한 Column에 대해서 Dictionary를 이용해 값을 바꾸는 방법 (0) | 2021.09.30 |
댓글