Pandas DataFrame DataFrame.merge() 함수

Suraj Joshi 2023년1월30일
  1. pandas.DataFrame.merge()의 구문 :
  2. 예제 코드: DataFrame.merge()두 개의DataFrames를 병합하는 함수
  3. 예제 코드: merge 메서드에서how 매개 변수를 설정하여 다양한 기법을 사용하여 데이터 프레임을 병합합니다
  4. 예제 코드: Pandas에서DataFrame.merge()함수를 사용하여 특정 열만 병합
  5. 예제 코드: 인덱스를 데이터 프레임 병합을위한 조인 키로 사용DataFrame.merge()함수
Pandas DataFrame DataFrame.merge() 함수

Python Pandas DataFrame.merge() 함수는DataFrame 또는 명명 된 Series 객체를 병합합니다.

pandas.DataFrame.merge()의 구문 :

DataFrame.merge(
    right,
    how="inner",
    on=None,
    left_on=None,
    right_on=None,
    left_index=False,
    right_index=False,
    sort=False,
    suffixes="_x",
    "_y",
    copy=True,
    indicator=False,
    validate=None,
)

매개 변수

right DataFrame 또는 명명 된 시리즈. 병합 할 개체
how left,right,inner 또는outer. 병합 작업을 수행하는 방법
on 라벨 또는 목록. 병합 할 열 또는 인덱스 이름
left_on 라벨 또는 목록. 왼쪽DataFrame에서 병합 할 열 또는 색인 이름
right_on 라벨 또는 목록. 오른쪽DataFrame에 병합 할 열 또는 색인 이름
left_index 부울. 왼쪽DataFrame의 색인을 조인 키로 사용 (left_index=True)
right_index 부울. 오른쪽DataFrame의 인덱스를 조인 키로 사용 (right_index = True)
sort 부울. 출력에서 조인 키를 알파벳순으로 정렬 (sort=True)
suffixes 왼쪽과 오른쪽에서 각각 겹치는 열 이름에 적용 할 접미사
copy 부울. copy=False에 대한 복사 금지
indicator 각 행의 소스 정보 (indicator=True)와 함께_merge라는DataFrame을 출력 할 열을 추가하고string이라는 열을 추가하여DataFrame (indicator=string)을 출력합니다.
validate 병합이 지정된 유형인지 확인하는 매개 변수입니다.

반환

주어진 객체를 병합하는DataFrame을 반환합니다.

예제 코드: DataFrame.merge()두 개의DataFrames를 병합하는 함수

import pandas as pd

df1 = pd.DataFrame(
    {"Name": ["Suraj", "Zeppy", "Alish", "Sarah"], "Working Hours": [1, 2, 3, 5]}
)
df2 = pd.DataFrame({"Name": ["Suraj", "Zack", "Alish", "Raphel"], "Pay": [5, 6, 7, 8]})

print("1st DataFrame:")
print(df1)
print("2nd DataFrame:")
print(df2)

merged_df = df1.merge(df2)
print("Merged DataFrame:")
print(merged_df)

출력:

1st DataFrame:
    Name  Working Hours
0  Suraj              1
1  Zeppy              2
2  Alish              3
3  Sarah              5
2nd DataFrame:
     Name  Pay
0   Suraj    5
1    Zack    6
2   Alish    7
3  Raphel    8
Merged DataFrame:
    Name  Working Hours  Pay
0  Suraj              1    5
1  Alish              3    7

SQLinner-join 기법을 사용하여df1df2를 단일DataFrame으로 병합합니다.

inner-join 메소드의 경우 두DataFrames에 공통된 열이 하나 이상 있는지 확인해야합니다.

여기서merge()함수는 공통 열의 값이 동일한 행을 두DataFrames에 결합합니다.

예제 코드: merge 메서드에서how 매개 변수를 설정하여 다양한 기법을 사용하여 데이터 프레임을 병합합니다

import pandas as pd

df1 = pd.DataFrame(
    {"Name": ["Suraj", "Zeppy", "Alish", "Sarah"], "Working Hours": [1, 2, 3, 5]}
)
df2 = pd.DataFrame({"Name": ["Suraj", "Zack", "Alish", "Raphel"], "Pay": [5, 6, 7, 8]})

print("1st DataFrame:")
print(df1)
print("2nd DataFrame:")
print(df2)

merged_df = df1.merge(df2, how="right")
print("Merged DataFrame:")
print(merged_df)

출력:

1st DataFrame:
    Name  Working Hours
0  Suraj              1
1  Zeppy              2
2  Alish              3
3  Sarah              5
2nd DataFrame:
     Name  Pay
0   Suraj    5
1    Zack    6
2   Alish    7
3  Raphel    8
Merged DataFrame:
     Name  Working Hours  Pay
0   Suraj            1.0    5
1   Alish            3.0    7
2    Zack            NaN    6
3  Raphel            NaN   8 

SQLright-join 기법을 사용하여df1df2를 단일DataFrame에 병합합니다.

여기서merge()함수는 오른쪽DataFrame에서 모든 행을 반환합니다. 그러나 왼쪽 DataFrame에만있는 행은 NaN값을 가져옵니다.

마찬가지로,how 매개 변수의leftouter 값을 사용할 수도 있습니다.

예제 코드: Pandas에서DataFrame.merge()함수를 사용하여 특정 열만 병합

import pandas as pd

df1 = pd.DataFrame(
    {
        "Name": ["Suraj", "Zeppy", "Alish", "Sarah"],
        "Working Hours": [1, 2, 3, 5],
        "Position": ["Salesman", "CEO", "Manager", "Sales Head"],
    }
)
df2 = pd.DataFrame(
    {
        "Name": ["Suraj", "Zack", "Alish", "Raphel"],
        "Pay": [5, 6, 7, 8],
        "Position": ["Salesman", "CEO", "Manager", "Sales Head"],
    }
)

print("1st DataFrame:")
print(df1)
print("2nd DataFrame:")
print(df2)

merged_df = df1.merge(df2, on="Name")
print("Merged DataFrame:")
print(merged_df)

출력:


1st DataFrame:
    Name  Working Hours    Position
0  Suraj              1    Salesman
1  Zeppy              2         CEO
2  Alish              3     Manager
3  Sarah              5  Sales Head
2nd DataFrame:
     Name  Pay    Position
0   Suraj    5    Salesman
1    Zack    6         CEO
2   Alish    7     Manager
3  Raphel    8  Sales Head
Merged DataFrame:
    Name  Working Hours Position_x  Pay Position_y
0  Suraj              1   Salesman    5   Salesman
1  Alish              3    Manager    7    Manager

df1df2Name 열만 병합합니다. 기본 조인 방법은inner-join이므로 두DataFrame의 공통 행만 조인됩니다. Position 열은DataFrames 모두에 공통이므로 두 위치 열 즉, Position_xPosition_y.

기본적으로_x_y 접미사는 겹치는 열의 이름에 추가됩니다. suffixes 매개 변수를 사용하여 접미사를 지정할 수 있습니다.

df1 = pd.DataFrame(
    {
        "Name": ["Suraj", "Zeppy", "Alish", "Sarah"],
        "Working Hours": [1, 2, 3, 5],
        "Position": ["Salesman", "CEO", "Manager", "Sales Head"],
    }
)
df2 = pd.DataFrame(
    {
        "Name": ["Suraj", "Zack", "Alish", "Raphel"],
        "Pay": [5, 6, 7, 8],
        "Position": ["Salesman", "CEO", "Manager", "Sales Head"],
    }
)

print("1st DataFrame:")
print(df1)
print("2nd DataFrame:")
print(df2)

merged_df = df1.merge(df2, on="Name", suffixes=("_left", "_right"))
print("Merged DataFrame:")
print(merged_df)

출력:

1st DataFrame:
    Name  Working Hours    Position
0  Suraj              1    Salesman
1  Zeppy              2         CEO
2  Alish              3     Manager
3  Sarah              5  Sales Head
2nd DataFrame:
     Name  Pay    Position
0   Suraj    5    Salesman
1    Zack    6         CEO
2   Alish    7     Manager
3  Raphel    8  Sales Head
Merged DataFrame:
    Name  Working Hours Position_left  Pay Position_right
0  Suraj              1      Salesman    5       Salesman
1  Alish              3       Manager    7        Manager

예제 코드: 인덱스를 데이터 프레임 병합을위한 조인 키로 사용DataFrame.merge()함수

import pandas as pd

df1 = pd.DataFrame(
    {
        "Name": ["Suraj", "Zeppy", "Alish", "Sarah"],
        "Working Hours": [1, 2, 3, 5],
        "Position": ["Salesman", "CEO", "Manager", "Sales Head"],
    }
)
df2 = pd.DataFrame(
    {
        "Name": ["Suraj", "Zack", "Alish", "Raphel"],
        "Pay": [5, 6, 7, 8],
        "Position": ["Salesman", "CEO", "Manager", "Sales Head"],
    }
)

print("1st DataFrame:")
print(df1)
print("2nd DataFrame:")
print(df2)

merged_df = df1.merge(
    df2, left_index=True, right_index=True, suffixes=("_left", "_right")
)
print("Merged DataFrame:")
print(merged_df)

출력:


1st DataFrame:
    Name  Working Hours    Position
0  Suraj              1    Salesman
1  Zeppy              2         CEO
2  Alish              3     Manager
3  Sarah              5  Sales Head
2nd DataFrame:
     Name  Pay    Position
0   Suraj    5    Salesman
1    Zack    6         CEO
2   Alish    7     Manager
3  Raphel    8  Sales Head
Merged DataFrame:
  Name_left  Working Hours Position_left Name_right  Pay Position_right
0     Suraj              1      Salesman      Suraj    5       Salesman
1     Zeppy              2           CEO       Zack    6            CEO
2     Alish              3       Manager      Alish    7        Manager
3     Sarah              5    Sales Head     Raphel    8     Sales Head

열 유사성을 고려하지 않고 두 개의 DataFrames의 해당 행을 병합합니다. 두DataFrame에 동일한 열 이름이 나타나면 접미사가 열 이름에 첨부되고 병합 후 다른 열이 만들어집니다.

작가: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn

관련 문장 - Pandas DataFrame