PANDAS 데이터 통합 및 재 구성(join/merge 편)

전편글 에서 저 는 pandas 가 데이터 통합 과 재 구축 에서 자주 사용 하 는 concat 방법 에 대한 사용 설명 을 정리 하 였 습 니 다.이 어 pandas 에서 도 자주 사용 되 는 join 과 merge 방법 을 소개 한다.
merge
pandas 의 merge 방법 은 SQL 과 유사 한 메모리 링크 작업 을 제공 합 니 다.홈 페이지 문 서 는 다른 오픈 소스 언어의 데이터 조작(예 를 들 어 R)보다 성능 이 효율 적 이 라 고 언급 했 습 니 다.
SQL 문장 과 비교 하면 볼 수 있 습 니 다여기,이곳
merge 의 인자
on:열 이름,join 이 정렬 하 는 열 이름 입 니 다.이 매개 변 수 를 사용 할 때 왼쪽 표 와 오른쪽 표 가 정렬 하 는 열 에 똑 같은 열 이름 이 있 도록 해 야 합 니 다.
left_on:왼쪽 표 가 정렬 된 열 은 열 이름 일 수도 있 고 dataframe 과 같은 길이 의 arrays 일 수도 있 습 니 다.
right_on:오른쪽 표 가 정렬 된 열 은 열 이름 일 수도 있 고 dataframe 과 같은 길이 의 arrays 일 수도 있 습 니 다.
left_index/ right_index:True 의 haunted 라면 index 를 정렬 한 key 입 니 다.
how:데이터 융합 방법.
sort:dataframe 에 합 쳐 진 keys 는 사전 순서대로 정렬 합 니 다.기본 값 은 false 를 설정 하면 표현 을 향상 시 킬 수 있 습 니 다.
merge 의 기본 병합 방법:
merge 는 표 내부 에서 index-on-index 와 index-on-column(s)의 합병 을 기반 으로 하지만 기본 값 은 index 를 기반 으로 합 쳐 집 니 다.
1.1 복합 키 의 합병 방법
merge 를 사용 할 때 여러 개의 key 를 복합 으로 선택 하여 병합 을 정렬 할 수 있 습 니 다.
1.1.1 on 을 통 해 지정 한 데 이 터 를 합 쳐 정렬 한 열

In [41]: left = pd.DataFrame({'key1': ['K0', 'K0', 'K1', 'K2'],
  ....:           'key2': ['K0', 'K1', 'K0', 'K1'],
  ....:           'A': ['A0', 'A1', 'A2', 'A3'],
  ....:           'B': ['B0', 'B1', 'B2', 'B3']})
  ....: 

In [42]: right = pd.DataFrame({'key1': ['K0', 'K1', 'K1', 'K2'],
  ....:            'key2': ['K0', 'K0', 'K0', 'K0'],
  ....:            'C': ['C0', 'C1', 'C2', 'C3'],
  ....:            'D': ['D0', 'D1', 'D2', 'D3']})
  ....: 

In [43]: result = pd.merge(left, right, on=['key1', 'key2'])
 
how 가 지정 되 지 않 으 면 기본적으로 inner 방법 을 사용 합 니 다.
how 의 방법 은 다음 과 같다.
left
왼쪽 표 의 모든 데이터 만 저장 합 니 다.

In [44]: result = pd.merge(left, right, how='left', on=['key1', 'key2'])

right
오른쪽 표 의 모든 데이터 만 유지 합 니 다.

In [45]: result = pd.merge(left, right, how='right', on=['key1', 'key2'])

outer
두 표 의 모든 정 보 를 저장 합 니 다.

In [46]: result = pd.merge(left, right, how='outer', on=['key1', 'key2'])

inner
두 표 의 공공 부분 만 유지 합 니 다.

In [47]: result = pd.merge(left, right, how='inner', on=['key1', 'key2'])

1.2 indicator
v 0.17.0 버 전의 pandas 는 처음에 indicator 의 인 자 를 지원 합 니 다.True 를 설치 할 때 출력 결 과 는 열 이 증가 합 니 다.'merge'。_merge 열 은 세 개의 값 을 얻 을 수 있 습 니 다.
  • left_왼쪽 시계 에 만 있 습 니 다
  • right_오른쪽 시계 에 만 있 습 니 다
  • both 두 표 모두
  • 1.3 join 방법
    dataframe 에 내 장 된 join 방법 은 빠 른 합병 방법 입 니 다.이것 은 기본적으로 index 를 정렬 한 열 로 합 니 다.
    1.3.1 매개 변수
    join 의 how 매개 변 수 는 merge 의 how 매개 변수 와 마찬가지 로 표 통합 보존 데 이 터 를 지정 하 는 규칙 입 니 다.
    구체 적 으로 앞의 how 설명 을 볼 수 있다.
    1.3.2 매개 변수
    실제 응용 에서 오른쪽 표 의 색인 값 이 왼쪽 표 의 한 열 값 이 라면 오른쪽 표 의 색인 과 왼쪽 표 의 열 을 정렬 하여 합 치 는 유연 한 방식 으로 합 칠 수 있 습 니 다.
    ex 1
    
    In [59]: left = pd.DataFrame({'A': ['A0', 'A1', 'A2', 'A3'],
      ....:           'B': ['B0', 'B1', 'B2', 'B3'],
      ....:           'key': ['K0', 'K1', 'K0', 'K1']})
      ....: 
    
    In [60]: right = pd.DataFrame({'C': ['C0', 'C1'],
      ....:            'D': ['D0', 'D1']},
      ....:            index=['K0', 'K1'])
      ....: 
    
    In [61]: result = left.join(right, on='key')

    1.3.3 suffix 접미사 파라미터
    표 와 합병 하 는 과정 에서 두 개의 표 가 같은 이름 이지 만 값 이 다 르 면 합병 할 때 모두 보존 하고 싶 으 면 suffixes 로 표 마다 중복 열 이름 에 접 두 사 를 추가 할 수 있 습 니 다.
    
    In [79]: result = pd.merge(left, right, on='k', suffixes=['_l', '_r'])

    *또한 lsuffix 와 rsuffix 는 각각 왼쪽 표 의 접미사 와 오른쪽 표 의 접 두 사 를 지정 합 니 다.
    1.4 여러 dataframe 조합
    한 번 에 여러 개의 dataframe 을 조합 할 때 dataframe 의 목록 이나 tuple 요 소 를 입력 할 수 있 습 니 다.한 번 에 join 여러 개,한 번 에 여러 번 고민 해결~
    
    In [83]: right2 = pd.DataFrame({'v': [7, 8, 9]}, index=['K1', 'K1', 'K2'])
    
    In [84]: result = left.join([right, right2])

    1.5 업데이트 테이블 의 nan 값
    1.5.1 combine_first
    한 표 의 nan 값 이 다른 표 의 같은 위치(같은 색인 과 같은 열)에서 찾 을 수 있다 면 combine데이터 업데이트
    1.5.2 update
    한 장의 표 에 있 는 데이터 로 다른 표 의 데 이 터 를 업데이트 하려 면 update 로 이 루어 질 수 있 습 니 다.
    1.5.3 combine_first 와 update 의 차이
    combine 사용first 는 왼쪽 표 의 nan 값 만 업데이트 합 니 다.업 데 이 트 는 왼쪽 표 의 모든 오른쪽 표 에서 찾 을 수 있 는 값 을 업데이트 합 니 다(두 표 의 위치 가 대응 합 니 다).
    예시 코드 참조 출처―홈 페이지
    이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

    좋은 웹페이지 즐겨찾기