4.6 데이터프레임 합성
1.### 4.6 데이터프레임 합성
---
- 판다스는 두 개 이상의 데이터프레임을 하나로 합치는 데이터 병합(merge)이나 연결(concatenate) 지원
2. #### merge 함수를 사용한 데이터 프레임 병합
- merge 함수는 두 데이터 프레임의 공통 열 혹은 인덱스를 기준으로 두 개의 테이블을 합친다.
- 이 때 기준이 되는 열, 행의 데이터를 키(key)라고 한다.
- merge 함수로 위 두 데이터프레임 df1, df2 를 합치면
- 공통 열인 고객번호 열을 기진으로 데이터를 찾아서 합친다.
- 이때 기본적으로 양쪽 데이터프레임에 모두 키가 존재하는 데이터만 보여주는 inner join 방식 사용
- outer join 방식은 키 값이 한쪽에만 있어도 데이터를 보여줌
- 이 데이터에서 키 값 setosa에 대해 왼쪽 데이터프레임는
- 1.4와 1.3라는 2개의 데이터, 오른쪽 데이터프레임에 0.4라는 1개의 데이터가 있으므로
- 병합된 데이터에는 setosa가 (1.4, 0.4), (1.3, 0.4) 두 개의 데이터가 생긴다.
- 키 값 virginica의 경우에는 왼쪽 데이터프레임에 1.5와 1.3라는 2개의 데이터,
- 오른쪽데이터프레임에 0.3와 0.5라는 2개의 데이터가 있으므로
- 2개와 2개의 조합인 4가지 값이 생긴다.
- 두 데이터프레임에서 이름이 같은 열은 모두 키가 된다.
만약 이름이 같아도 키가 되면 안되는 열이 있다면 on 인수로 기준열을 명시
- 다음 예에서 첫번째 데이터프레임의 '데이터'는 실제로는 금액을 나타내는 데이터이고
두번째 데이터프레임의 '데이터'는 실제로는 성별을 나타내는 데이터이므로
이름이 같아도 다른 데이터이다.
- 따라서 이 열은 기준열이 되면 안된다.
- 이때 기준 열이 아니면서 이름이 같은 열에는 _x 또는 _y와 같은 접미사가 붙는다.
- 반대로 키가 되는 기준열의 이름이 두 데이터프레임에서 다르다면 left_on, right_on
인수를 사용하여 기준열을 명시해야 한다.
3. #### join 메서드
- merge 명령어 대신 join 메서드 사용할 수 있음
4. #### concat 함수를 사용한 데이터 연결
- concat 함수를 사용하면 기준 열(key column)을 사용하지 않고 단순히 데이터를 연결(concatenate)한다.
- 기본적으로는 위/아래로 데이터 행을 연결한다.
- 단순히 두 시리즈나 데이터프레임을 연결하기 때문에 인덱스 값이 중복될 수 있다.
'😀 기초 > 판다스(Pandas)' 카테고리의 다른 글
4.8 시계열 자료 다루기 (0) | 2022.02.04 |
---|---|
4.7 피봇테이블과 그룹분석 (0) | 2022.02.04 |
4.5 데이터프레임 인덱스 조작 (0) | 2022.02.02 |
4.4 데이터프레임의 데이터 조작 (0) | 2022.01.30 |
4.3 데이터프레임 고급 인덱싱 (0) | 2022.01.30 |