여러 열에 걸쳐 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을 스택하는 방법

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다