본문 바로가기
파이썬엑셀

파이썬 엑셀 병합, Pandas로 쉽게 합쳐보세요!

by mypick 2024. 10. 24.

엑셀 데이터를 좀 더 효율적으로 다루고 싶은데, 여러 개의 엑셀 파일이나 시트에 흩어져 있는 데이터를 하나로 모아서 분석하고 싶다고요? 걱정 마세요! 파이썬과 pandas 라이브러리를 사용하면 쉽고 빠르게 엑셀 데이터를 병합할 수 있답니다. 이 글에서는 pandas를 이용해서 엑셀 데이터를 합치는 다양한 방법과 실제 코드 예시를 통해 여러분의 데이터 분석 작업을 한층 업그레이드하는 방법을 알려드릴게요.

 


파이썬 pandas로 엑셀 데이터 병합하기: concat과 merge

엑셀에서 여러 개의 데이터 소스를 하나로 통합하는 작업, 즉 데이터 병합은 흔히 마주치는 일이죠. 예를 들어, 매달 업데이트되는 판매 데이터를 담은 여러 개의 엑셀 파일을 하나로 합쳐야 한다거나, 하나의 엑셀 파일 안에 여러 개의 시트에 나눠져 있는 데이터를 통합해야 할 때가 있을 거예요. 이럴 때 파이썬의 pandas 라이브러리는 정말 유용하답니다.

 

pandas는 파이썬에서 데이터 분석을 위한 필수 라이브러리 중 하나인데요, 엑셀 파일을 읽고 쓰는 기능은 물론, 데이터 정제, 변환, 분석 등 다양한 작업을 쉽게 수행할 수 있도록 도와줘요. 특히, 과 라는 두 가지 강력한 함수를 이용하면 엑셀 데이터 병합을 간편하게 처리할 수 있다는 사실!

 


1. concat 함수로 엑셀 데이터 이어붙이기

 함수는 여러 데이터프레임을 세로 또는 가로로 연결하여 하나의 데이터프레임으로 만들어 주는 역할을 해요. 마치 레고 블록을 쌓듯이 데이터프레임을 이어붙인다고 생각하면 이해가 쉬울 거예요.

 

엑셀 파일을 읽어온 후  함수를 사용하여 데이터를 위아래로 병합하는 방법을 살펴볼게요.

 

import pandas as pd

# 엑셀 파일 읽어오기
df1 = pd.read_excel('file1.xlsx')
df2 = pd.read_excel('file2.xlsx')

# 데이터프레임 연결 (위아래로 병합)
merged_df = pd.concat([df1, df2], axis=0) 

# 결과 저장
merged_df.to_excel('merged_output.xlsx', index=False)

 코드에서  부분이 핵심인데요, 은 데이터프레임을 위아래로 연결하라는 의미에요. 만약 로 설정하면 옆으로 연결하게 되겠죠?

 

참고로,  함수를 사용할 때는 각 데이터프레임의 열 이름이 동일해야 원하는 대로 데이터가 병합된답니다. 열 이름이 다르다면, 병합 전에 열 이름을 통일해 주는 작업이 필요해요.

 


2. merge 함수로 엑셀 데이터 연결하기: SQL JOIN처럼

 함수는 SQL의 JOIN과 비슷한 기능을 제공해요. 즉, 두 개의 데이터프레임에서 공통된 열(키)을 기준으로 데이터를 연결하는 거죠.

 

예를 들어, '고객 정보'와 '주문 정보'가 담긴 두 개의 엑셀 파일이 있다고 가정해 볼게요. 두 파일에는 '고객 ID'라는 공통된 열이 있고, 이를 기준으로 두 파일의 데이터를 연결하여 '고객 ID'별로 고객 정보와 주문 정보를 함께 보여주고 싶을 때  함수를 사용하면 딱이에요.

 

아래 코드를 보시죠.

 

import pandas as pd

# 엑셀 파일 읽어오기
customer_df = pd.read_excel('customer.xlsx')
order_df = pd.read_excel('order.xlsx')

# '고객 ID' 열을 기준으로 데이터 연결
merged_df = pd.merge(customer_df, order_df, on='고객 ID')

# 결과 저장
merged_df.to_excel('merged_output.xlsx', index=False)

 부분이 핵심인데요, 는 '고객 ID' 열을 기준으로 데이터를 연결하라는 의미에요.

 

주의할 점은,  함수를 사용할 때는 연결할 두 데이터프레임에 공통된 열이 있어야 한다는 거예요. 그리고, 연결할 열의 데이터 타입이 일치해야 정확하게 연결될 수 있답니다.

 


파이썬 pandas로 엑셀 데이터 병합하는 팁

엑셀 데이터를 병합할 때 좀 더 효율적으로 작업하고 싶다면, 다음과 같은 팁들을 참고해 보세요.

 


1. 파일 경로 확인하기

엑셀 파일을 읽어올 때, 파일의 경로가 올바른지 확인하는 것은 기본 중의 기본이죠. 파일 경로가 잘못되어 있으면 오류가 발생할 수 있으니, 항상 주의해서 확인해 주세요.

 


2. 데이터프레임 정보 확인하기

데이터를 병합하기 전에 각 데이터프레임의 열 이름, 데이터 타입, 결측값 등을 확인해 보는 것이 좋아요. 이렇게 하면 데이터 병합 과정에서 예상치 못한 문제가 발생하는 것을 방지할 수 있답니다.

 


3.  엑셀 파일의 구조 파악하기

엑셀 파일의 구조를 파악하는 것도 중요해요. 예를 들어, 엑셀 파일이 여러 시트로 구성되어 있거나, 특정 시트에만 데이터가 있는 경우,  옵션을 사용하여 원하는 시트만 읽어올 수 있어요.

 


4.  데이터 타입 일치 확인하기

데이터를 병합할 때, 연결할 열의 데이터 타입이 일치해야 정확하게 연결될 수 있어요. 만약 데이터 타입이 다르다면,  함수를 사용하여 데이터 타입을 변환해 주어야 한답니다.

 


파이썬 pandas로 엑셀 데이터 병합 후 확인 및 검증


엑셀 데이터를 병합한 후에는 병합 결과가 제대로 되었는지 확인하는 것이 중요해요.

 

  • 데이터프레임의 크기 확인하기:  속성을 사용하여 데이터프레임의 행과 열 수를 확인할 수 있어요. 병합 전후의 데이터프레임 크기를 비교하여 데이터가 제대로 병합되었는지 확인할 수 있죠.
  • 데이터프레임의 내용 확인하기:  또는  함수를 사용하여 데이터프레임의 처음 또는 마지막 부분을 확인할 수 있어요. 이를 통해 데이터가 예상대로 병합되었는지 확인할 수 있고, 특히 연결된 열의 값들을 중점적으로 살펴보면 더욱 확실하게 확인 가능하죠.
  • 중복 데이터 확인하기:  함수를 사용하여 중복된 데이터가 있는지 확인할 수 있고,  함수를 사용하여 중복된 데이터를 제거할 수도 있어요.
  • 결측값 확인하기:  함수를 사용하여 결측값이 있는지 확인하고,  함수를 사용하여 결측값을 처리할 수도 있죠.

이렇게 데이터를 꼼꼼하게 확인하고 검증하는 과정을 거쳐야만, 데이터 분석 결과의 신뢰성을 확보할 수 있다는 점을 잊지 마세요!

 


다양한 엑셀 파일 포맷과 pandas

pandas는 다양한 엑셀 파일 포맷을 지원해요. 흔히 사용하는  파일은 물론,  파일, 심지어 CSV 파일까지도 pandas를 통해 쉽게 읽고 쓸 수 있답니다.

 

.xlsx pd.read_excel() Excel 2007 이후 버전 파일 읽기
.xls pd.read_excel() Excel 97-2003 버전 파일 읽기
.csv pd.read_csv() CSV 파일 읽기

파일 포맷 pandas 함수 설명

 


마무리하며

오늘은 파이썬의 pandas 라이브러리를 사용하여 엑셀 데이터를 병합하는 다양한 방법에 대해 알아봤어요. 과  함수를 활용하면 엑셀 파일이나 시트에 흩어져 있는 데이터를 쉽게 통합하여 데이터 분석 작업을 효율적으로 수행할 수 있답니다.

 

자주 묻는 질문 (FAQ)

Q1. pandas 라이브러리를 설치하지 않았는데, 어떻게 설치하죠?

 

A1. 파이썬에서 pandas를 설치하려면, 터미널이나 명령 프롬프트를 열고 아래 명령어를 입력하면 돼요.

 

pip install pandas openpyxl

 완료되면 pandas를 import하여 사용할 수 있답니다.

 

Q2. 엑셀 파일을 읽어올 때 오류가 발생하는데, 어떤 이유일까요?

 

A2. 엑셀 파일을 읽어올 때 오류가 발생하는 가장 흔한 이유는 파일 경로가 잘못되었거나 파일이 존재하지 않기 때문이에요. 파일 경로를 다시 한번 확인해 보고, 파일이 정확한 위치에 있는지 확인해 보세요.

 

Q3.

 

A3. 데이터프레임을 단순히 위아래 또는 옆으로 연결해야 한다면  함수를 사용하면 되고, 두 데이터프레임에서 공통된 열을 기준으로 데이터를 연결해야 한다면  함수를 사용하면 돼요.

 

키워드:파이썬,엑셀,데이터분석,pandas,데이터병합,엑셀데이터,데이터처리,엑셀자동화,파이썬엑셀,concat,merge,데이터프레임,엑셀병합,데이터통합,자동화,엑셀함수,python,excel,dataanalysis,automation,datamerge,datascience,pythonprogramming,exceltips,exceltricks,datatransformation