팬더 병합() 두 개의 데이터 세트를 하나로 모으고 공통 속성이나 열을 기반으로 행을 정렬하는 프로세스로 정의됩니다. 이는 DataFrame 객체 간의 모든 표준 데이터베이스 조인 작업의 진입점입니다.
통사론:
pd.merge(left, right, how='inner', on=None, left_on=None, right_on=None, left_index=False, right_index=False, sort=True)
매개변수:
- 'one_to_one' 또는 '1:1': 왼쪽 및 오른쪽 데이터세트 모두에서 병합 키가 고유한지 확인합니다.
- 'one_to_many' 또는 '1:m': 왼쪽 데이터세트에서만 병합 키가 고유한지 확인합니다.
- 'many_to_one' 또는 'm:1': 병합 키가 올바른 데이터세트에서만 고유한지 확인합니다.
- 'many_to_many' 또는 'm:m': 허용되지만 검사 결과는 아닙니다.
DataFrame과 병합되는 객체입니다.
수행할 병합 유형입니다.
조인할 열 또는 인덱스 수준 이름입니다. 왼쪽과 오른쪽 DataFrame 모두에서 발견되어야 합니다. on이 None이고 인덱스를 병합하지 않는 경우 기본값은 두 DataFrame의 열 교차입니다.
왼쪽_켜짐: 레이블이나 목록 또는 배열과 유사한
키로 사용할 왼쪽 DataFrame의 열 또는 인덱스 수준 이름입니다. DataFrame의 길이와 동일한 길이의 배열일 수 있습니다.
키로 사용할 오른쪽 DataFrame의 열 또는 인덱스 수준 이름입니다. DataFrame의 길이와 동일한 길이의 배열일 수 있습니다.
true인 경우 왼쪽 DataFrame의 인덱스를 조인 키로 사용합니다. MultiIndex(계층적)의 경우 다른 DataFrame(인덱스 또는 일부 열)의 많은 키가 수준 수와 일치해야 합니다.
오른쪽 DataFrame의 인덱스를 조인 키로 사용합니다. left_index와 사용법이 동일합니다.
True인 경우 결과 DataFrame에서 조인 키를 사전순으로 정렬합니다. 그렇지 않으면 조인 키의 순서는 조인 유형(how 키워드)에 따라 달라집니다.
왼쪽 DataFrame과 오른쪽 DataFrame의 열 이름을 각각 겹치기 위해 적용하는 접미사입니다. 열은 (False, False) 값을 사용하여 겹칠 때 예외를 발생시킵니다.
True이면 DataFrame의 복사본을 반환합니다.
그렇지 않으면 복사를 피할 수 있습니다.
True인 경우 DataFrame 출력에 열을 추가합니다. _병합 ' 각 행의 소스에 대한 정보가 포함되어 있습니다. 문자열인 경우 각 행의 소스에 대한 정보가 포함된 열이 출력 DataFrame에 추가되고 해당 열의 이름은 문자열의 값이 됩니다. 정보 열은 범주형으로 정의되며 다음 값을 갖습니다.
지정되면 아래에 제공된 병합 유형을 확인합니다.
예시 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