ALL NIGHT STUDY

Concat/Merge

with_AI 2021. 9. 16. 02:17

Concat (Concatenate)

concat은 '더한다' 혹은 '붙인다'라는 의미

  • 데이터프레임을 더할 때, 일반적으로는 더해지는 행, 열의 이름이나 인덱스 값이 일치해야 합니다.
  • 비어있는 부분에 대해서는 (결측치를 의미하는) NaN 값으로 채워지겠죠.

pd.concat(objs, axis=0, join='outer', join_axes=None, ignore_index=False, keys=None, levels=None, names=None, verify_integrity=False, sort=None, copy=True)

axis : 축

join : 조인 방법

join_axes : 조인 축 지정

keys : 원본데이터 이름 지정

ignore_index : 중복되는 로우 이름 색인 무시 여부

 


Concat 예시

df1 = DataFrame({'a':[1,2,3], 'b':[4,5,6]})

df2 = DataFrame({'a':[10,11], 'b':[40,50]})

df1, df2 table

1. pd.concat([df1, df2]) # row 합치기

  • 인덱스를 무시하고 그냥 밑으로 row 합치는 경우

 

 

2. pd.concat([df1, df2], axis=1, join='inner')# join (left join)

 

  • inner join은 left join과 동일하고, 같은 index가 존재할 경우에만 데이터 합병을 한다.

 

 

3. pd.concat([df1, df2], keys=['one', 'two'])# keys

 

  • key를 통해서 원본 데이터의 이름을 재지정 해줄 수 있다.

 


Merge

  • 공통된 부분을 기반으로 합치기
  • 데이터 프레임끼리 병합하기
  • sql에서 join과 같은 역할
import pandas as pd


# 기준열 이름이 같을 때
pd.merge(left, right, on = '기준열', how = '조인방식')

# 기준열 이름이 다를 때
pd.merge(left, right, left_on = '왼쪽 열', right_on = '오른쪽 열', how = '조인방식')

 

left : 왼쪽 데이터프레임

right : 오른쪽 데이터프레임

on : (두 데이터프레임의 기준열 이름이 같을 때) 기준열

how : 조인 방식 {'left', 'right', 'inner', 'outer'} 기본값은 'inner'

left_on : 기준열 이름이 다를 때, 왼쪽 기준열

right_on : 기준열 이름이 다를 때, 오른쪽 기준열

 


join

 

Left Join

: 왼쪽 데이터프레임을 기준으로 조인한다. 오른쪽 데이터프레임에 없는 값은 NaN으로 나타난다.

Right Join

: 오른쪽 데이터프레임을 기준으로 조인한다. 왼쪽 데이터프레임에 없는 값은 NaN으로 나타난다.

Inner Join

: 교집합을 의미한다. 양쪽에 공통으로 있는 값만 나타난다.

Outer Join

: 모든 값이 나타나도록 한다. 왼쪽 데이터프레임과 오른쪽 데이터프레임에 없는 값들은 NaN으로 나타난다.

'ALL NIGHT STUDY' 카테고리의 다른 글

미분  (0) 2021.09.16
Tidy 데이터  (0) 2021.09.16
Pandas(Python Data Analysis Library)  (0) 2021.09.16
Feature Engineering  (0) 2021.09.16
데이터 전처리(Pre-Processing)  (0) 2021.09.16