파이썬에서 여러 테이블을 하나로 머지할 때, 예전에는 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())를 여러번에 걸쳐서 사용하는 것보다 훨씬 간편하고 효율적이라고 말해주고 싶다.

반응형

+ Recent posts