Data Science/Data Analysis

[파이썬으로 하는 데이터 분석] 15. DataFrame 병합하기 - 우당탕탕 개발자 되기 프로젝트

우당탕탕 개발자 2024. 3. 17. 16:21
728x90
반응형

 

여러 데이터 프레임을 하나로 합치는 방법에는 여러 가지가 있는데 우선 concat을 살펴보면,  concat은 단순하게 데이터 프레임들을 붙이는, 연결하는 방법입니다.

concat은 서로 크기(구조)가 다른 데이터 프레임이라도 병합이 가능합니다.

concat() 함수 안에 병합할 데이터 프레임을 [ ]로 묶어 입력해 사용하면 됩니다.

concat을 사용해 병합한 결과를 살펴보면 중복되는 칼럼은 아래로 이어져서 데이터가 저장되고 중복되지 않는 칼럼의 공간은 NaN의 값으로 채워진 것을 확인할 수 있습니다.

 

concat() 기본적으로 아래로 데이터 프레임을 붙이는 방법입니다.

여기서 위아래가 아닌 옆으로 데이터 프레임을 붙이고 싶으면 concat() 함수에서 axis 옵션1로 변경해 주면 옆으로 데이터 프레임이 병합되는 것을 확인할 수 있습니다.

또한 concat() 함수에서 join 옵션은 데이터 프레임을 병합할 때 적용할 집합의 종류를 지정합니다.

join 옵션을 inner로 변경해 주면 중복되는 칼럼에 대해서만 데이터 프레임을 병합(교집합) 해 줍니다.

데이터 프레임을 병합하는 두 번째 방법은 merge입니다.

merge는 특정 기준에 따라 두 데이터 프레임을 병합하는 것을 말합니다.

merge() 함수를 사용할 때는 concat() 함수와 달리 병합할 두 데이터 프레임그냥 나열해 주면 됩니다.

 

merge로 병합할 데이터 프레임의 결과를 보면 merge는 기본으로 inner(교집합) 세팅이 되어 있습니다.

하여 칼럼중복된 것을 포함해 전체가 나타나게 되고,중복되는 것만이 나타나게 됩니다.

여기서 inner 설정을 how 옵션에서 outer로 바꾸게 되면 합집합으로 설정되게 됩니다.

결과를 보면 칼럼은 inner의 결과와 동일하지만 행은 중복되지 않는 것도 나타나게 되는 것을 확인할 수 있습니다.

how 옵션을 left와 right로 설정하게 되면 각각 차집합으로 설정할 수 있습니다.

 

마지막으로 join을 살펴보면 이전에 사용한 concat, merge와 달리 첫 번째 데이터 프레임을 선정해 주고 join() 함수를 사용해 두 번째 데이터 프레임을 지정해 주면 됩니다.

join은 행의 인덱스를 기준으로 데이터 프레임이 병합되는데 칼럼이 중복되면 오류를 발생하게 됩니다.

 

반응형

join을 사용해 데이터 프레임을 병합하기 위해서는 두 데이터 프레임의 칼럼이 중복되면 안 됩니다.

하여 첫 번째 데이터 프레임에서는 '나' 칼럼을 인덱스로 분리해 주고, 두 번째 데이터 프레임에서는 '다' 칼럼을 인덱스로 분리해 준 뒤에 join을 다시 진행해 보면 오류 없이 병합되는 것을 확인할 수 있습니다.

 

join은 how 옵션의 기본값이 left으로 지정되어 있습니다.

하여 첫 번째 데이터 프레임의 인덱스를 기준으로 병합되는 것을 확인할 수 있습니다.

728x90
반응형