파이썬에서 여러 테이블을 하나로 머지할 때, 예전에는 pd.merge(a, b, on = 'key', how='left', validaiton='m:m') 을 중첩해서 사용해야만 했다. 예전 회사에서는 급하게 코딩하느라 이런 것을 생각하지 않았는데, 파이썬에서 여러개 테이블을 한번에 JOIN하는 아주 아름다운 방법이 있었다.
from functools import reduce
dfs=[df1, df2, df3, df4, df5]
base_df=reduce(lambda left, right: pd.merge(left, right, on='KEY', how='left', validate='m:m'), df)
위와 같은 방식으로 하면 여러번 중첩하지 않아도 되는 테이블을 만들 수 있다. 물론 사전에 데이터프레임별로 중복되거나 하는 것들을 미리 정리하고 해야 하는 번거로움이 있기는 하지만 pd.merge(pd.merge())를 여러번에 걸쳐서 사용하는 것보다 훨씬 간편하고 효율적이라고 말해주고 싶다.
반응형
'Python, PySpark' 카테고리의 다른 글
파이썬 엑셀(MS) 타임스탬프 변환하기 (0) | 2023.03.25 |
---|---|
nltk 다운로드 환경이 아닐때 활용 (0) | 2023.03.08 |
파이썬에서 문자/숫자 컬럼 구분해서 missing값 처리 (0) | 2022.08.30 |
파이썬에서 JSON 인코딩 자료를 Text로 변환 (0) | 2022.08.23 |
LightGBM Classifier 트리 그리기 (0) | 2022.07.22 |