본문 바로가기

😀 기초/판다스(Pandas)

4.6 데이터프레임 합성

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)한다.
- 기본적으로는 위/아래로 데이터 행을 연결한다.
- 단순히 두 시리즈나 데이터프레임을 연결하기 때문에 인덱스 값이 중복될 수 있다.