본문 바로가기

코딩스쿨/마케터를 위한 데이터 분석

#6. concat 함수를 활용하여 엑셀 데이터 합치기 (판다스)

창업에 도전해서 새로운 세대를 위한 콘텐츠 큐레이션 플랫폼을 만들고 있습니다!

관심 분야에 대한 최신 트렌드를 가장 쉽고 빠르게 받아볼 수 있는 서비스에요. 많은 피드백 부탁드립니다. 🙏


https://oneoneone.kr


판다스 라이브러리의 concat 함수를 활용하여 엑셀 데이터 합치기

 

01. 판다스로 엑셀 데이터를 합치는 이유

자, 상사가 이런 요청을 하네요?

3월 1일부터 20일까지 광고 성과 가져와!! 😡😱

 

다행히 우리에게는 1일부터 20일까지 광고 성과가 기록된 엑셀 파일이 있어요.

근데 문제는 하루씩 데이터가 따로 저장되어 있다는 거예요 😅

 

1일부터 20일까지의 광고 성과

 

물론 가능하죠, 생각보다 금방이에요!

파일 하나를 열어서 Ctrl + C / Ctrl + V 20번만 하면 끝! 😅

 

자, 다 해서 상사에게 보고를 했어요.

근데 수고했다고 할 줄 알았는데 이번에는 6개월치 데이터를 보고 싶다네요? 😱

 

오호... 인생이 그런 거죠? 대충 계산하면 Ctrl + C / Ctrl + V 180만 하면 되네요ㅎㅎ

오늘 야근은 확정인 것 같아요!! 🥳🥳🥳🥳

 

좋았어! 야근이다!

 

근데 여기서 만약에 판다스로 엑셀 데이터를 합칠 수 있다면 이야기가 달라져요.

파일이 20개던, 180개던 10분이면 코드 한 번 돌려주면 끝나죠! 👍

그리고 상사에게 여유롭게 웃으면서 파일 하나 전해드리고 퇴근하시면 돼요.

 

빨리 주피터 노트북에서 판다스를 활용해 엑셀 데이터를 합치는 방법을 알고 싶지 않으신가요?

그럼 바로 시작해보겠습니다 😎

 

 

02. concat을 활용하여 동일한 형태의 엑셀 데이터 합치기

우선 아래 실습 파일을 다운로드 받아주세요.

그다음 실습을 진행할 주피터 노트북 폴더에 넣어주세요

 

실습1.csv
0.00MB
실습2.csv
0.00MB

 

자, 이제 판다스 라이브러리의 concat 함수를 활용해서 파일을 합쳐볼 거예요.

 

concat은 연결이라는 뜻을 가진 'concentenation'의 약자입니다.

concat은 말 그대로 데이터를 연결하는 함수인데 사용방법은 굉장히 간단해요.

 

합치고 싶은 데이터프레임들을 함수 안에 순서대로 넣어주면 되는데

그냥 pd.concat([1번 데이터프레임], [2번 데이터프레임])을 해주시면 1번 데이터프레임과 2번 데이터프레임이 합쳐진답니다.

 

여기서 잠깐! 합치기 전에 먼저 '실습1' 파일과 '실습2' 파일이 어떻게 생겼는지 확인해볼까요?

굳이 엑셀 파일을 켜지 않고 앞에서 배운 것들을 활용해 주피터 노트북에서 바로 확인해볼게요 🧐

# 판다스 라이브러리 사용
import pandas as pd

# 실습1.csv 파일을 불러와서 file1로 저장
# 실습2.csv 파일을 불러와서 file2로 저장
file1 = pd.read_csv('실습1.csv')
file2 = pd.read_csv('실습2.csv')

 

위의 코드를 작성하고 실행시켜주면 각각의 csv 파일을 불러와서 변수명에 저장할 수 있어요.

그다음은 변수명에 어떤 데이터프레임이 저장되어 있는지 확인하면 되겠죠? 👏

 

실습1, 실습2 파일

 

확인해보니 두 파일의 형식이 완벽하게 동일하네요!!

그럼 이제 이어서 concat 함수를 활용해서 엑셀 데이터를 합쳐볼까요? 🙋‍♂️

 

concat 함수 전~~ 혀 어렵지 않으니 걱정하지 마세요!

아래 예시를 참고하여 코드를 작성하고 실행해주시면 concat 함수가 우리의 파일을 합쳐줄 거예요.

# 판다스 라이브러리 사용
import pandas as pd

# 실습1.csv 파일을 불러와서 file1로 저장
# 실습2.csv 파일을 불러와서 file2로 저장
file1 = pd.read_csv('실습1.csv')
file2 = pd.read_csv('실습2.csv')

# 실습1.csv 파일과 실습2.csv 파일을 합쳐서 result로 저장
result = pd.concat([file1,file2])

# result 확인하기
print(result)

어때요, 참 쉽죠? 😃

 

위의 코드를 실행시키고 result의 결과를 확인하면? 짜잔~

concat으로 깔끔하게 합쳐진 파일을 확인할 수 있답니다 👍

 

result 파일 결과

 

 

03. concat을 활용하여 동일하지 않은 형태의 엑셀 데이터 합치기

하지만 이렇게 합칠 때 하나 꼭 알아두셔야 하는 개념이 있는데요.

 

지금은 합치는 파일의 칼럼명이 같았지만 만약 file2에서 노출 칼럼이 삭제되면 어떻게 될까요?

아래 이미지처럼 동일하지 않은 형태의 엑셀 데이터를 합쳐야 하는 상황이라면? 😅

 

실습1 파일
실습2 파일

 

이럴 때는 그냥 직접 한번 코드를 다시 실행시켜보시는 게 최고예요!

file2에서 노출 칼럼을 삭제하고 동일한 코드를 돌려볼까요? 그럼 아래와 같은 결과를 얻으실 수 있어요 😎

 

result 파일

 

삭제한 노출 칼럼에 'Nan'이라는 값이 들어가 있는 게 보이시나요?

'Nan'은 'Not a number'의 약어로 데이터가 누락되었을 때 데이터를 표현하는 값이라고 생각해주시면 됩니다.

 

확인해보니 칼럼명을 기준으로 데이터가 합쳐지고 노출 칼럼에는 'Nan'값이 들어가네요!

이렇게 다양한 방법으로 데이터를 수정해보시고 코드를 실행해서 그 결과를 확인해보시면 좋을 것 같아요 😎


자, 오늘은 판다스 라이브러리의 concat 함수를 활용하여 엑셀 데이터를 합치는 방법에 대해서 알아봤는데요,

직접 코드를 작성해보시고 실행시켜보시면 좋을 것 같아요!!

 

중간중간 추가적인 궁금증이 생기면 구글링하는 것 잊지 마시고요 🧐

그럼 다음 시간에 만나요 ✋✋

 

변명 중에서도 가장 어리석고 못난 변명은 '시간이 없어서'라는 변명이다.

- 에디슨