Hippo's data
데이터프레임 다루기3 - 데이터프레임 병합 concat, merge, join 본문
오늘은 저번 데이터프레임 변형에 이어서 정형 데이터분석에서 주로 사용되는 데이터 프레임 병합입니다
데이터 전처리단계에서 데이터 병합이 필요한 경우가 많은데요 2가지 이상의 데이터 프레임을 병합하는 방법에 대해 알아보겠습니다!
1. concat 활용
2. merge/ join 활용
1. concat 활용
concat함수는 판다스에서 데이터프레임 병합시 사용하는데요
concatenate(사슬같이 잇다)의 약자
속성이 동일한 데이터프레임 병합시 주로 활용
1) 칼럼명 동일한 경우
pd.concat([df1, df2], ignore_index=False, axis =1)
<파라미터>
ignore_index
-> False : 기존 index유지(default) / True : 기존 index무시(index재배열)
axis
-> 0 : 위+아래로 합치기(row레벨) / 1 : 왼쪽+오른쪽으로 합치기(col레벨)
2) 칼럼명 다른 경우
pd.concat([df3, df4], join='outer')
<파라미터>
join
-> outer: 합집합(빈 부분은 NAN값으로 표시됨) , inner: 교집합
3) 인덱스 중복인 경우
pd.concat([df5, df6], verify_integrity=False)
<파라미터>
verify_integrity -> 인덱스 중복 여부 점검
verify_integrity=False(default) -> error 미발생 (중복인경우)
verify_integrity=True -> error 발생 (중복인경우)
2. merge / join 활용
merge는 특정 칼럼(key)을 기준으로 데이터 프레임 병합 가능
pd.merge(df1, df2, on='기준 칼럼' , how='inner')
<how 파라미터> -> 특정한 col 기준으로 합침
- inner(default): 일치하는 값이 있는 경우 / Merge할 테이블의 데이터가 모두 있는 경우만 가지고 옴 (교집합)
- left: 왼쪽을 기준으로 오른쪽 채움 - 오른쪽에 데이터 없으면 NaN
- right: 오른쪽을 기준으로 왼쪽 채움 - 왼쪽에 데이터 없으면 NaN
- outer: Left와 Right를 합한 것 (합집합)
# index 기준으로 join (set_index활용)
-> on(기준 칼럼)을 명시할 필요 없이 index를 merge함
pd.merge(df1, df2, left_index=True, right_index=True) -> inner와 동일한 형태
# join 활용 -> 내부적으로 pandas.merge 함수를 기반으로 만들어짐
-> index가 있는 경우 사용(행 인덱스를 기준으로 결합) / 기본적으로 index를 사용하여 left join
형태 : Dataframe1.join(Dataframe2. how='left')
'Python' 카테고리의 다른 글
판다스 데이터프레임 생략없이 출력 (0) | 2024.02.19 |
---|---|
함수(Function), 메소드(Method) 차이 (2) | 2024.01.30 |
데이터프레임 다루기2 - 데이터 프레임 변형 groupby, pivot, stack (0) | 2023.12.11 |
데이터프레임 다루기1 - 데이터 프레임 조회 및 추출 (1) | 2023.12.10 |
데이터분석 관련 함수들-인덱싱,슬라이싱/리스트,튜플,딕셔너리 (2) | 2023.12.10 |