Data Science/Python
[Python] pandas로 데이터 합치기(concat, merge)
oduu
2021. 1. 7. 00:24
효과적으로 데이터를 분석하기 위해서는 데이터셋을 하나로 합치는 것이 필요한데요,
pandas를 통해 데이터를 합치는 두가지 방법입니다!
먼저 pandas 라이브러리를 불러와 주고
import pandas as pd
1. concat
행을 기준으로 concat ( default값으로 axis = 0 적용 )
pd.concat([df1,df2])
열을 기준으로 concat
pd.concat([df1, df2], axis = 1)
행의 인덱스 번호도 그대로 가져왔을 경우, ignore_index = True 를 이용해서 인덱스를 재배열할 수 있습니다.
pd.concat([df1,df2], ignore_index = True)
concat에서 join = 'outer' 를 default 값으로 가지기 때문에, 'inner'로 하고 싶다면 join = 'inner'를 입력하면 된답니다.
- outer는 합집합, inner는 교집합이라고 생각하시면 됩니다!
pd.concat([df1,df2], axis = 1, join = 'inner' )
concat을 할 때, 두 데이터프레임의 인덱스를 새로 정렬하고 싶다면 ignore_index = True 를 입력하면 됩니다.
- default : ignore_index = False
pd.concat([df1,df2], ignore_index = True)
2. merge
merge는 두 데이터프레임을 각 데이터에 존재하는 key 값을 기준으로 병합할 때 사용합니다.
공통 열이름(id)을 기준으로 inner 옵션 병합하기
pd.merge(df1, df2)
outer 옵션을 줘 on = ' '값을 기준으로 병합하기
pd.merge(df1, df2, how = 'outer', on = '')
왼쪽 데이터를 기준으로 병합하기
pd.merge(df1, df2, how = 'left', left_on = '', right_on = '')
오른쪽 데이터를 기준으로 병합하기
pd.merge(df1, df2, how = 'right', left_on = '', right_on = '')