콘텐츠로 건너뛰기

파이썬 튜토리얼: DF 병합하는 방법!

[

pandas merge(): 공통 열 또는 인덱스를 기준으로 데이터 결합하기

merge()의 사용 방법

merge()는 데이터를 결합하는 데 사용되는 기능과 유사한 기능을 제공하는 pandas의 도구입니다. 여러 데이터셋을 통합하고 분석하면서 데이터 이해력을 향상시키는 데 도움이 되는 기능입니다.

이 튜토리얼에서는 pandas를 사용하여 데이터를 결합하는 다음과 같은 방법과 시점을 배우게 됩니다.

  • merge(): 공통 열 또는 인덱스를 기준으로 데이터를 결합
  • .join(): 키 열 또는 인덱스를 기준으로 데이터를 결합합니다.
  • concat(): 행 또는 열을 기준으로 데이터프레임을 결합합니다.

이 튜토리얼의 예제를 사용하여 대화형 Jupyter 노트북 및 데이터 파일을 따라할 수 있습니다.

참고: 아래에서 배울 기술은 일반적으로 DataFrameSeries 객체 모두에 대해 동작합니다. 그러나 간단함과 간결성을 위해 예제에서는 ‘데이터셋’이라는 용어를 사용하여 데이터프레임 또는 시리즈로 둘 다 사용할 수 있는 객체를 가리킵니다.

pandas merge(): 공통 열 또는 인덱스를 기준으로 데이터 결합하기

먼저 배울 기술은 merge()입니다. merge()는 데이터베이스의 join 동작과 유사한 기능을 제공합니다. 학습할 세 가지 기술 중 가장 유연한 기능입니다.

하나 이상의 키를 기반으로 데이터 개체를 결합하려는 경우 데이터베이스의 작업과 유사한 merge()를 사용할 수 있습니다. 구체적으로는 데이터를 공유하는 행을 결합하려는 경우 merge()가 필요한 도구입니다.

merge()를 사용하면 일대다다대다 조인 모두를 수행할 수 있습니다. 일대다 조인에서 하나의 데이터셋은 동일한 값을 반복하는 병합 열에 많은 행을 가집니다. 예를 들어, 값이 1, 1, 3, 5 및 5 일 수 있습니다. 동시에 다른 데이터셋의 병합 열에는 반복되는 값이 없을 것입니다. 1, 3, 5를 예로 들 수 있습니다.

많은 수의 다대다 조인의 경우 두 병합 열 모두 반복된 값을 가질 것입니다. 이러한 병합은 보다 복잡하며 조인된 행의 카르테시안 곱을 결과로 반환합니다.

즉, 병합 후에 키 열에서 동일한 값을 공유하는 모든 행의 조합이 있을 것입니다.

아래 예제에서는 merge() 함수의 사용법과 다양한 예제를 살펴보겠습니다.

# 라이브러리 임포트
import pandas as pd
# 데이터 생성
data1 = {"Name": ["John", "Emma", "Andrew"],
"Age": [25, 30, 35],
"Location": ["New York", "Paris", "London"]}
data2 = {"Name": ["John", "Emma", "David"],
"Salary": [5000, 7000, 4000],
"Department": ["IT", "Marketing", "Sales"]}
df1 = pd.DataFrame(data1)
df2 = pd.DataFrame(data2)
# 공통 열 기준으로 데이터 결합
merged_df = pd.merge(df1, df2, on="Name")
print(merged_df)

결과:

Name Age Location Salary Department
0 John 25 New York 5000 IT
1 Emma 30 Paris 7000 Marketing

위 예제에서는 df1df2 데이터프레임을 Name 열을 기준으로 병합했습니다. 결과는 공통된 Name 값에 대한 행만 포함된 데이터프레임인 merged_df입니다.