[Python] merge() 사용하기(1)

도갱도갱·2022년 1월 11일
0

Python

목록 보기
19/34

merge 사용하기

💡 merge() 함수는 데이터프레임을 병합하는 pandas의 함수이다.

import pandas



Syntax

df = pandas.merge(df1, df2, on = '기준열', how='join 방식')

✔️ on

  • 두 데이터프레임을 병합할 기준열 지정
  • default(명시하지 않는다면)는 공통된 이름의 컬럼을 모두 기준열로 지정
  • default에서는 인덱스가 전부 달라도 무시되며, 인덱스를 초기화하여 병합한다.

✔️ left_on, right_on

  • 병합할 기준열 이름이 각 데이터프레임에서 다를 때 명시하여 지정

✔️ left_index, right_index

  • 기준열에 인덱스를 사용하려면 True로 명시
  • default는 False
  • 컬럼과 인덱스 혼합 사용 가능

✔️ how

  • join 방식 지정 {'left', 'right', 'inner', 'outer'}
  • default는 'inner' 조인



how 조인 방식


✔️ left
기준열에 대하여 왼쪽 데이터프레임을 기준으로 조인한다.
오른쪽 데이터프레임의 값 중 왼쪽 데이터프레임에 없는 값은 반영되지 않으며, 왼쪽 데이터프레임의 값 중 오른쪽 데이터프레임에 없는 값은 NaN으로 표시된다.

✔️ right
기준열에 대하여 오른쪽 데이터프레임을 기준으로 조인한다.
왼쪽 데이터프레임의 값 중 오른쪽 데이터프레임에 없는 값은 반영되지 않으며, 오른쪽 데이터프레임의 값 중 왼쪽 데이터프레임에 없는 값은 NaN으로 표시된다.

✔️ inner
기준열에 대하여 양쪽에 공통으로 있는 데이터만 반영한다.

✔️ outer
기준열에 대하여 두 데이터프레임의 모든 값이 나타나도록 한다. 데이터프레임에 없는 값들은 NaN으로 표현된다.



기준열 다루기

기준열 여러개 지정하기

pd.merge(df1, df2, on = ['col1', 'col2'])

두 데이터프레임의 열 이름이 다를 때,
각각 left_on = '왼쪽 열', right_on = '오른쪽 열'로 지정한다.

pd.merge(df1, df2, left_on = '왼쪽 열', right_on = '오른쪽 열')

인덱스와 칼럼을 혼합하여 병합하기

df8 = pandas.DataFrame({'A':['a1','a2','a3'],'B1':['b1','b2','b3']}, index = ['i1','i2','i3'])
df9 = pandas.DataFrame({'B2':['b1','b2','b3'],'C':['c1','c2','c3'], 'I':['i2','i3','i4']})

df8의 인덱스와 df9의 칼럼 I를 기준열로 사용하여 outer 조인

pandas.merge(df8, df9, left_index=True, right_on='I', how='outer')



참고

0개의 댓글