logo

팬더 DataFrame.merge()

팬더 병합() 두 개의 데이터 세트를 하나로 모으고 공통 속성이나 열을 기반으로 행을 정렬하는 프로세스로 정의됩니다. 이는 DataFrame 객체 간의 모든 표준 데이터베이스 조인 작업의 진입점입니다.

통사론:

 pd.merge(left, right, how='inner', on=None, left_on=None, right_on=None, left_index=False, right_index=False, sort=True) 

매개변수:

    오른쪽: DataFrame 또는 명명된 시리즈
    DataFrame과 병합되는 객체입니다.어떻게: {'왼쪽', '오른쪽', '외부', '내부'}, 기본값 '내부'
    수행할 병합 유형입니다.
      왼쪽:SQL 왼쪽 외부 조인과 유사하게 왼쪽 프레임의 키만 사용합니다. 키 순서를 유지합니다.오른쪽:SQL 오른쪽 외부 조인과 유사하게 오른쪽 프레임의 키만 사용합니다. 키 순서를 유지합니다.밖의:SQL 완전 외부 조인과 유사하게 두 프레임의 키 통합을 사용했습니다. 키를 사전순으로 정렬합니다.안의:SQL 내부 조인과 유사하게 두 프레임의 키 교차를 사용합니다. 왼쪽 키의 순서를 유지합니다.
    에: 라벨 또는 목록
    조인할 열 또는 인덱스 수준 이름입니다. 왼쪽과 오른쪽 DataFrame 모두에서 발견되어야 합니다. on이 None이고 인덱스를 병합하지 않는 경우 기본값은 두 DataFrame의 열 교차입니다.
    왼쪽_켜짐: 레이블이나 목록 또는 배열과 유사한
    키로 사용할 왼쪽 DataFrame의 열 또는 인덱스 수준 이름입니다. DataFrame의 길이와 동일한 길이의 배열일 수 있습니다.오른쪽에: 레이블이나 목록 또는 배열과 유사한
    키로 사용할 오른쪽 DataFrame의 열 또는 인덱스 수준 이름입니다. DataFrame의 길이와 동일한 길이의 배열일 수 있습니다.왼쪽_색인: bool, 기본값은 False
    true인 경우 왼쪽 DataFrame의 인덱스를 조인 키로 사용합니다. MultiIndex(계층적)의 경우 다른 DataFrame(인덱스 또는 일부 열)의 많은 키가 수준 수와 일치해야 합니다.오른쪽_색인: bool, 기본값은 False
    오른쪽 DataFrame의 인덱스를 조인 키로 사용합니다. left_index와 사용법이 동일합니다.종류: bool, 기본값은 False
    True인 경우 결과 DataFrame에서 조인 키를 사전순으로 정렬합니다. 그렇지 않으면 조인 키의 순서는 조인 유형(how 키워드)에 따라 달라집니다.접미사: (str, str)의 튜플, 기본값('_x', '_y')
    왼쪽 DataFrame과 오른쪽 DataFrame의 열 이름을 각각 겹치기 위해 적용하는 접미사입니다. 열은 (False, False) 값을 사용하여 겹칠 때 예외를 발생시킵니다.복사: bool, 기본값은 True
    True이면 DataFrame의 복사본을 반환합니다.
    그렇지 않으면 복사를 피할 수 있습니다.지시자: bool 또는 str, 기본값은 False
    True인 경우 DataFrame 출력에 열을 추가합니다. _병합 ' 각 행의 소스에 대한 정보가 포함되어 있습니다. 문자열인 경우 각 행의 소스에 대한 정보가 포함된 열이 출력 DataFrame에 추가되고 해당 열의 이름은 문자열의 값이 됩니다. 정보 열은 범주형으로 정의되며 다음 값을 갖습니다.
      '왼쪽만'병합 키가 DataFrame의 '왼쪽'에만 나타나는 관찰의 경우'올바른_만'병합 키가 DataFrame의 '오른쪽'에만 나타나는 관찰에 대해 정의됩니다.'둘 다'관측치의 병합 키가 두 관측치 모두에서 발견되면.
    확인: 문자열, 선택 사항
    지정되면 아래에 제공된 병합 유형을 확인합니다.
    • 'one_to_one' 또는 '1:1': 왼쪽 및 오른쪽 데이터세트 모두에서 병합 키가 고유한지 확인합니다.
    • 'one_to_many' 또는 '1:m': 왼쪽 데이터세트에서만 병합 키가 고유한지 확인합니다.
    • 'many_to_one' 또는 'm:1': 병합 키가 올바른 데이터세트에서만 고유한지 확인합니다.
    • 'many_to_many' 또는 'm:m': 허용되지만 검사 결과는 아닙니다.

예시 1: 하나의 키에 두 개의 DataFrame을 병합합니다.

 # import the pandas library import pandas as pd left = pd.DataFrame({ 'id':[1,2,3,4], 'Name': ['John', 'Parker', 'Smith', 'Parker'], 'subject_id':['sub1','sub2','sub4','sub6']}) right = pd.DataFrame({ 'id':[1,2,3,4], 'Name': ['William', 'Albert', 'Tony', 'Allen'], 'subject_id':['sub2','sub4','sub3','sub6']}) print (left) print (right) 

산출

 id Name subject_id 0 1 John sub1 1 2 Parker sub2 2 3 Smith sub4 3 4 Parker sub6 id Name subject_id 0 1 William sub2 1 2 Albert sub4 2 3 Tony sub3 3 4 Allen sub6 

예2: 여러 키에 있는 두 개의 DataFrame을 병합합니다.

 import pandas as pd left = pd.DataFrame({ 'id':[1,2,3,4,5], 'Name': ['Alex', 'Amy', 'Allen', 'Alice', 'Ayoung'], 'subject_id':['sub1','sub2','sub4','sub6','sub5']}) right = pd.DataFrame({ 'id':[1,2,3,4,5], 'Name': ['Billy', 'Brian', 'Bran', 'Bryce', 'Betty'], 'subject_id':['sub2','sub4','sub3','sub6','sub5']}) print pd.merge(left,right,on='id') 

산출

 id Name_x subject_id_x Name_y subject_id_y 0 1 John sub1 William sub2 1 2 Parker sub2 Albert sub4 2 3 Smith sub4 Tony sub3 3 4 Parker sub6 Allen sub6