파이썬/Pandas

파이썬 Pandas 데이터프레임 합성 방법

코샵 2023. 3. 31. 11:12
반응형
Pandas는 데이터프레임을 합성하고 연결하는 데에 유용한 여러 함수를 제공합니다. 여기서는 concat, merge, join 함수를 사용하여 데이터프레임을 합성하는 방법에 대해 알아보겠습니다.

1. concat 함수

concat 함수는 두 개 이상의 데이터프레임을 연결하는 데 사용됩니다. 이 함수는 데이터프레임을 수직 또는 수평으로 연결할 수 있습니다. 예를 들어, 아래와 같이 두 개의 데이터프레임을 생성합니다.

import pandas as pd

# 데이터프레임 생성
df1 = pd.DataFrame({'A': ['A0', 'A1', 'A2', 'A3'],
                    'B': ['B0', 'B1', 'B2', 'B3'],
                    'C': ['C0', 'C1', 'C2', 'C3'],
                    'D': ['D0', 'D1', 'D2', 'D3']})

df2 = pd.DataFrame({'A': ['A4', 'A5', 'A6', 'A7'],
                    'B': ['B4', 'B5', 'B6', 'B7'],
                    'C': ['C4', 'C5', 'C6', 'C7'],
                    'D': ['D4', 'D5', 'D6', 'D7']})

# 수직 연결
result = pd.concat([df1, df2])
print(result)

# 수평 연결
result = pd.concat([df1, df2], axis=1)
print(result)

위 코드에서는 concat 함수를 사용하여 두 개의 데이터프레임(df1, df2)을 연결합니다. 수직 연결을 수행한 결과는 다음과 같습니다.

    A   B   C   D
0  A0  B0  C0  D0
1  A1  B1  C1  D1
2  A2  B2  C2  D2
3  A3  B3  C3  D3
0  A4  B4  C4  D4
1  A5  B5  C5  D5
2  A6  B6  C6  D6
3  A7  B7  C7  D7

수평 연결을 수행한 결과는 다음과 같습니다.

    A   B   C   D   A   B   C   D
0  A0  B0  C0  D0  A4  B4  C4  D4
1  A1  B1  C1  D1  A5  B5  C5  D5
2  A2  B2  C2  D2  A6  B6  C6  D6
3  A3  B3  C3  D3  A7  B7  C7  D7


2. merge 함수

merge 함수는 두 개의 데이터프레임을 특정 열을 기준으로 합치는 데 사용됩니다. 예를 들어, 아래와 같이 두 개의 데이터프레임을 생성합니다.

import pandas as pd

# 데이터프레임 생성
df1 = pd.DataFrame({'key': ['K0', 'K1', 'K2', 'K3'],
                    'A': ['A0', 'A1', 'A2', 'A3'],
                    'B': ['B0', 'B1', 'B2', 'B3']})

df2 = pd.DataFrame({'key': ['K0', 'K1', 'K2', 'K3'],
                    'C': ['C0', 'C1', 'C2', 'C3'],
                    'D': ['D0', 'D1', 'D2', 'D3']})

# 조인 연산
result = pd.merge(df1, df2, on='key')
print(result)

위 코드에서는 merge 함수를 사용하여 두 개의 데이터프레임(df1, df2)을 조인합니다. key 열을 기준으로 조인 연산을 수행한 결과는 다음과 같습니다.

  key   A   B   C   D
0  K0  A0  B0  C0  D0
1  K1  A1  B1  C1  D1
2  K2  A2  B2  C2  D2
3  K3  A3  B3  C3  D3


3. join 함수

join 함수는 두 개의 데이터프레임을 index를 기준으로 결합하는 데 사용됩니다. 예를 들어, 아래와 같이 두 개의 데이터프레임을 생성합니다.

import pandas as pd

# 데이터프레임 생성
df1 = pd.DataFrame({'A': ['A0', 'A1', 'A2', 'A3'],
                    'B': ['B0', 'B1', 'B2', 'B3']},
                   index=['K0', 'K1', 'K2', 'K3'])

df2 = pd.DataFrame({'C': ['C0', 'C1', 'C2', 'C3'],
                    'D': ['D0', 'D1', 'D2', 'D3']},
                   index=['K0', 'K1', 'K2', 'K3'])

# join 연산
result = df1.join(df2)
print(result)

위 코드에서는 join 함수를 사용하여 두 개의 데이터프레임(df1, df2)을 결합합니다. index를 기준으로 결합한 결과는 다음과 같습니다.

     A   B   C   D
K0  A0  B0  C0  D0
K1  A1  B1  C1  D1
K2  A2  B2  C2  D2
K3  A3  B3  C3  D3


결론

 

위 코드에서는 Pandas의 다양한 함수를 사용하여 데이터프레임을 합성하는 방법에 대해 알아보았습니다. 이러한 함수를 적극적으로 활용하면 데이터프레임을 보다 쉽게 합성할 수 있습니다.