데이터프레임 병합

CODEDRAGON Development/Python

반응형


 

 

데이터프레임 병합

Pandas 두 개 이상의 데이터프레임을 하나로 합치는 데이터 병합(merge)이나 데이터 연결(concatenate) 할  있습니다.


 

·       merge()

·       join()

·       concat()

 

 

 

 

 

merge()

·       데이터 프레임의 공통 열 혹은 인덱스를 기준으로 두 개의 테이블을 합칩니다. 이 때 기준이 되는 열의 데이터를 키(key)라고 합니다.

·       테이블에 키 값이 같은 데이터가 여러개 있는 경우에는 있을 수 있는 모든 경우의 수를 따져서 조합을 만들어 냅니다.

·       두 데이터프레임에서 이름이 같은 열은 모두 키가 됩니다. 만약 이름이 같아도 키가 되면 안되는 열이 있다면 on 매개변수로 기준열을 명시해야 합니다.

·       키가 되는 기준열의 이름이 두 데이터프레임에서 다르면 left_on, right_on 매개변수를 사용하여 기준열을 명시해야 합니다.

·       일반 데이터 열이 아닌 인덱스를 기준열로 사용하려면 left_index 또는 right_index 인수를 True 로 설정합니다.

 

merge(dataframe1, dataframe2, how, on, left_on, right_on, left_index, right_index)

 

 

parameter

description

dataframe1, dataframe2

·       병합할 데이터프레임

how

·       join 방식 지정

 

how parameter

설명

how='inner'

inner join

양쪽 데이터프레임에 모두 키가 존재하는 데이터만 보여줍니다.

how='outer'

outer join

값이 한쪽에만 있어도 데이터를 보여줍니다.

how='left'

첫번째 데이터프레임의 키 값을 모두 보여줍니다.

how='right'

두번째 데이터프레임의 키 값을 모두 보여줍니다.

 

on

·       두 데이터프레임에서 이름이 같은 열은 모두 키가 됩니다. 만약 이름이 같아도 키가 되면 안되는 열이 있다면 on 인수로 기준열을 명시합니다.

·       출력시 기준 열이 아니면서 이름이 같은 열에는 _x 또는 _y 와 같은 접미사가 붙습니다.

left_on='이름1', right_on="이름2"

·       키가 되는 기준열의 이름이 두 데이터프레임에서 다르면 left_on, right_on 인수를 사용하여 기준열을 명시합니다.

left_index, right_index

·       일반 데이터 열이 아닌 인덱스를 기준열로 사용하려면 left_index 또는 right_index 인수를 True 로 설정합니다.

 

 

 

 

 

 

 

join()

merge()함수 대신 join()함수를 사용하여 병합할 할 수 있습니다.

 

df1.join(df2, how='outer')

 

 

 

 

 

 

 

concat()

·       기준 (key column)을 사용하지 않고 단순히 데이터를 연결(concatenate)합니다.

·       기본적으로는 /아래로 데이터 행을 연결합니다.

·       단순히 두 시리즈(Series)나 데이터프레임(DataFrame)을 연결하기 때문에 인덱스 값이 중복될 수 있습니다.

 

pd.concat([s1, s2])

pd.concat([df1, df2], axis=1)

 

 


'Development > Python' 카테고리의 다른 글

frozenset 자료형  (0) 2020.02.04
Series객체의 속성  (0) 2020.02.04
set vs dictionary vs list vs tuple  (0) 2020.02.04
numpy.argsort()  (0) 2020.02.03
리터럴을 통한 dict 생성, dict() 생성자를 통한 dict생성  (0) 2020.02.03