python/pandas 활용

dataframe combine_first() - 두 DataFrame 합치기

Memory! 2022. 8. 30. 20:49
728x90
반응형

데이터를 전처리 하다보면 누락된 table을 다른 테이블에서 채워 넣거나, 테이블 내에서 동일한 key로 여러 행이 존재하는 경우가 간혹 있다. 
combine_first() 함수는 두 DataFrame을 합칠 때 한개의 값은 그대로 사용하고, NA (빈값)을 다른 테이블에서 가져와서 채운다.
 
코드로 알아보자.

df1 = pd.DataFrame({'A': [None, 0], 'B': [4, None], 'C':[1, None]})
df2 = pd.DataFrame({'B': [3, 3], 'C': [1, 1]})

 
df1

 ABC
1NaN41
20NaNNaN

df2

 bc
131
231
df1.combine_first(df2)
 ABC
1NaN41
2031

df1의 2행의 B,C 값이 NaN 에서 df2의 2행 값이 채워졌음을 볼수 있다.
※ 기존에 값이 있던 df1의 1행의 값은 변경되지 않는다는 것이 combine_first()의 주요 포인트이다.
 
 
- 두개의 DataFrame을 이어 붙이는 경우 concat() 메소드
- 두개의 DataFrame을 하나의 key로 join 하는 경우 merge() 함수를 통해 가능하다.

728x90
반응형