-
파이썬 pandas 기초 ) 데이터프레임 합치기 (concat, merge)데이터 분석 공부/파이썬 데이터 분석 2021. 2. 2. 15:47728x90
1. ROW 기준으로 합치기
df.head()
df_copy = df.copy()
df
df_copy
row에 합칠 때는 pd.concat에 합칠 데이터프레임을 list로 합쳐줍니다. row 기준으로 합칠 때는 **sort=False 옵션**을 주어 순서가 유지되도록 합니다.
pd.concat([df, df_copy], sort=False)
그런데 이렇게 하면 index가 꼬입니다. (0,1,2,...14, 0,1,2, ..., 14)
reset_index() 로 인덱스를 초기화 해줄 수 있습니다.
df_concat = pd.concat([df, df_copy], sort=False)
df_concatdf_concat.reset_index()
하지만 index라는 column이 추가 됩니다. 그럴때는 **drop=True** 옵션으로 새로 index column이 생성되지 않도록 만들어 줍니다.
df_concat.reset_index(drop=True)
2. COLUMN 기준으로 합치기
column을 기준으로 합치고자 할 때는 **axis=1 옵션**을 부여합니다
pd.concat([df, df2], axis=1)
3. merge 활용하기
이전에 봤던 concat과 merge는 단순 합치는 목적과 특정 기준(index)으로 합치느냐에 따라 용도가 다릅니다.
- concat: row나 column 기준으로 단순하게 이어 붙히기
- merge: 특정 고유한 키(unique id) 값을 기준으로 병합하기
pd.merge(left, right, on='기준column', how='left')
- left와 right는 병합할 두 DataFrame을 대입합니다.
- on 에는 병합의 기준이 되는 column을 넣어 줍니다.
- how 에는 'left', 'right', 'inner', 'outer' 라는 4가지의 병합 방식중 한가지를 택합니다.
- left: 왼쪽 데이터프레임 데이터 기준으로 병합
- right: 오른쪽 기준
- inner: 교집합 (두 df에 모두 키 값이 존재하는 데이터 기준 병합)
- outer: 합집합 (하나의 df라도 키 값을 갖고 있는 데이터는 전부 병합)
EX)
pd.merge(df, df_right, on='이름', how='left') -> 왼쪽 데이터프레임 기준으로, '이름'이라는 열 기준으로 병합
EX) 같은 속성이지만 열 이름이 다를 경우,
- pd.merge(df, df_right, left_on='이름', right_on='성함', how='outer') -> left_on, right_on 각각 지정 가능
- 혹은 열 이름을 통일하게 만들어주고 기존 방식대로 진행
'데이터 분석 공부 > 파이썬 데이터 분석' 카테고리의 다른 글
Beautiful Soup 활용 크롤링, 헤더 치환, 파일과 폴더 생성 및 저장 (0) 2024.04.02 파이썬 기초 개념: 모듈(module) 생성 및 저장하기 (0) 2024.04.02 플레이데이터 데이터 엔지니어링 코스 1일차 : 리스트, 인덱싱, 논리연산자 (0) 2024.04.01 파이썬 클래스 상속하기 (부모클래스, 자식클래스) (0) 2024.04.01 파이썬 기초 개념 : 클래스, 객체, 인스턴스, 메서드, 어트리뷰트 (0) 2024.03.31