Pandas/DataFrame 합치기

김홍찬·2023년 1월 22일
0

학습내용

  • DataFrame을 합치는 방법

DataFrame 합치기

  • 두개 이상의 dataframe을 합쳐 하나의 dataframe으로 만들 수 있다.

결합 종류

  • 수직결합
    • 단순결합으로 여러개의 dataframe들의 같은 컬럼 끼리 수직으로 합친다.
  • 수평결합
    • 연관성 있는 여러 데이터를 하나로 합쳐서 조회하는 JOIN 처리를 한다.
    • 합치려는 dataframe의 인덱스나 특정 컬럼의 값이 같은 행 끼리 합친다.

concat( )을 통한 합치기

pd.concat(objs, [, key=리스트]), axis=0, join='outer' )

  • 수직, 수평 결합 모두 지원
  • 하나의 데이터셋을 여러 dataframe으로 나눈 것을 하나의 dataframe으로 합칠 때 사용한다.

수직결합 시

  • 컬럼명이 같은 열 끼리 합친다
  • 같은 column 명이 없는 열들도 결과 DataFrame에 들어간다.

수평결합 시

  • 인덱스명이 같은 행 끼리 합친다.
  • 같은 index명이 없는 행들도 결과 DataFrame에 들어간다.

매개변수

  • objs: 합칠 DataFrame들을 리스트로 전달

  • keys=[] 를 이용해 합친 행들을 구분하기 위한 다중 인덱스 처리

  • axis

    • 0 또는 index : 수직결합
    • 1 또는 columns : 수평결합
  • join:

    • 합치는 방식으로 다음 문자열을 값으로 설정한다.

      • 'outer': full outer join(기본값)

      • 'inner': inner join (동일한 index명, column명 끼리 합친다.)

join

  • 여러 데이터프레임에 흩어져 있는 정보 중 필요한 정보만 모아서 결합하기 위한 것.
  • 두개 이상의 데이터프레임을 특정 컬럼(열)의 값이 같은 행 끼리 수평 결합하는 것.
  • Inner Join, Left Outer Join, Right Outer Join, Full Outer Join

join()과 merge()

  • 연관성 있는 둘 이상의 dataframe을 하나로 합칠때 사용.
    • ex)고객과 주문정보, 직원과 부서정보
  • join()
    • 2개 이상의 dataframe을 조인할 때 사용
  • merge(0
    • 2개의 dataframe의 합치기만 지원한다

join()

dataframe객체.join(others, how='left', lsuffix='', rsuffix='')

  • 두개 이상의 dataframe들을 조인 할 수 있다.
    • 조인기준
      • index가 같은 행끼리 합친다.

매개변수

  • lsuffix, rsuffix
    • 조인 대상 DataFrame에 같은 이름의 컬럼이 있으면 에러 발생.
    • 같은 이름이 있는 경우 붙일 접미어 지정
  • how :조인방식. 'left'(기본값), 'right', 'outer', 'inner'.

merge()

dataframe.merge(합칠dataframe, how='inner', on=None, left_on=None, right_on=None, left_index=False, right_index=False)

  • 두개의 dataframe간의 조인만 가능하다.

    매개변수

  • on

    • 같은 컬럼명이 여러개일때 join 대상 컬럼을 선택
  • right_on, left_on

    • 조인할 때 사용할 왼쪽,오른쪽 Dataframe의 컬럼명.
  • left_index, right_index

    • 조인 할때 index를 사용할 경우 True로 지정
  • how

    • 조인 방식. 'left', 'right', 'outer', 'inner'(기본값)
  • suffixes

    • 두 DataFrame에 같은 이름의 컬럼명이 있을 경우 구분을 위해 붙인 접미어를 리스트로 설정
      • 생략시 x, y를 붙인다.

정리

  • 하나의 데이터셋을 어떤 특정행 또는 특정열을 기준으로 단순히 분리 한 경우를 합치는 경우 concat() 사용하자

    • 수직 결합일 경우는 concat()을 사용해야 한다.
  • 서로 연관성 있는 다른 데이터셋을 결합해서 보는 경우 join(), merge()를 사용한다.

    • 두 개 이상의 DataFrame을 조인할 때는 하는 경우 : join() 사용
    • 두개의 DataFrame을 조인할 때는 merge() 를 사용한다. => 컨트롤이 편하다.
profile
바쁘다 바빠

0개의 댓글