여러 열에 걸쳐 pandas dataframe을 병합하는 방법
여러 열에 걸쳐 두 개의 Pandas DataFrame을 병합하려는 경우가 종종 있습니다. 다행히도 다음 구문을 사용하는 pandas merge() 함수를 사용하면 이 작업을 쉽게 수행할 수 있습니다.
p.d. merge (df1, df2, left_on=['col1','col2'], right_on = ['col1','col2'])
이 튜토리얼에서는 이 기능을 실제로 사용하는 방법을 설명합니다.
예시 1: 이름이 다른 여러 열 병합
다음 두 개의 팬더 DataFrame이 있다고 가정해 보겠습니다.
import pandas as pd #create and view first DataFrame df1 = pd.DataFrame({'a1': [0, 0, 1, 1, 2], 'b': [0, 0, 1, 1, 1], 'c': [11, 8, 10, 6, 6]}) print (df1) a1 bc 0 0 0 11 1 0 0 8 2 1 1 10 3 1 1 6 4 2 1 6 #create and view second DataFrame df2 = pd.DataFrame({'a2': [0, 1, 1, 1, 3], 'b': [0, 0, 0, 1, 1], 'd': [22, 24, 25, 33, 37]}) print (df2) a2 comic 0 0 0 22 1 1 0 24 2 1 0 25 3 1 1 33 4 3 1 37
다음 코드는 두 DataFrame의 여러 열을 사용하여 왼쪽 조인을 수행하는 방법을 보여줍니다.
p.d. merge (df1, df2, how=' left ', left_on=[' a1 ', ' b '], right_on = [' a2 ', ' b ']) a1 b c a2 d 0 0 0 11 0.0 22.0 1 0 0 8 0.0 22.0 2 1 1 10 1.0 33.0 3 1 1 6 1.0 33.0 4 2 1 6 NaN NaN
예시 2: 이름이 같은 여러 열 병합
동일한 열 이름을 가진 다음 두 개의 pandas DataFrame이 있다고 가정합니다.
import pandas as pd #createDataFrames df1 = pd.DataFrame({'a': [0, 0, 1, 1, 2], 'b': [0, 0, 1, 1, 1], 'c': [11, 8, 10, 6, 6]}) df2 = pd.DataFrame({'a': [0, 1, 1, 1, 3], 'b': [0, 0, 0, 1, 1], 'd': [22, 24, 25, 33, 37]})
이 경우 두 DataFrame의 열 이름이 동일하므로 on = [‘a’, ‘b’] 사용을 단순화할 수 있습니다.
p.d. merge (df1, df2, how=' left ', on=[' a ', ' b ']) a b c d 0 0 0 11 22.0 1 0 0 8 22.0 2 1 1 10 33.0 3 1 1 6 33.0 4 2 1 6 NaN
추가 리소스
인덱스에 두 개의 Pandas DataFrame을 병합하는 방법
여러 Pandas DataFrame을 스택하는 방법