Pandas로 Excel 파일 다루기
1. 개요
Excel은 데이터 분석에서 자주 사용되는 포맷 중 하나입니다. Pandas는 read_excel
과 to_excel
을 제공하여 Excel 파일을 쉽게 읽고 저장할 수 있도록 지원합니다. 이번 포스팅에서는 Pandas를 활용하여 Excel 파일을 다루는 방법을 실습과 함께 알아보겠습니다.
2. Excel 파일 읽기 (read_excel
)
Pandas에서 Excel 파일을 읽기 위해 read_excel()
함수를 사용합니다. 먼저 Pandas와 openpyxl을 설치해야 합니다.
pip install pandas openpyxl
이제 샘플 Excel 파일을 읽어 보겠습니다.
import pandas as pd
# Excel 파일 읽기
df = pd.read_excel("sample.xlsx")
print(df.head())
2.1 특정 시트 읽기
Excel 파일에는 여러 개의 시트(sheet)가 포함될 수 있습니다. 특정 시트를 불러오려면 sheet_name
을 지정해야 합니다.
df = pd.read_excel("sample.xlsx", sheet_name="Sheet2")
print(df.head())
2.2 여러 시트 한 번에 읽기
여러 개의 시트를 동시에 읽으면 dict
형태로 반환됩니다.
sheets = pd.read_excel("sample.xlsx", sheet_name=None)
for sheet, df in sheets.items():
print(f"Sheet: {sheet}")
print(df.head())
2.3 특정 열만 읽기
usecols
매개변수를 사용하면 특정 열만 불러올 수 있습니다.
df = pd.read_excel("sample.xlsx", usecols=["A", "C"]) # A열과 C열만 가져오기
print(df.head())
2.4 헤더 없이 읽기
엑셀 파일에 헤더가 없는 경우 header=None
옵션을 사용합니다.
df = pd.read_excel("sample.xlsx", header=None)
print(df.head())
3. Excel 파일 저장하기 (to_excel
)
Pandas DataFrame을 Excel 파일로 저장하려면 to_excel()
메서드를 사용합니다.
df.to_excel("output.xlsx")
3.1 특정 시트에 저장
여러 개의 시트가 필요한 경우 ExcelWriter
를 사용할 수 있습니다.
with pd.ExcelWriter("output.xlsx") as writer:
df.to_excel(writer, sheet_name="Sheet1")
df.to_excel(writer, sheet_name="Sheet2")
3.2 인덱스 없이 저장
Excel 파일을 저장할 때 인덱스를 포함하지 않으려면 index=False
를 설정합니다.
df.to_excel("output.xlsx", index=False)
3.3 특정 열만 저장
columns
매개변수를 사용하면 특정 열만 저장할 수 있습니다.
df.to_excel("output.xlsx", columns=["Column1", "Column3"], index=False)
3.4 엑셀 포맷 조정 (열 너비 설정)
Excel 파일을 저장할 때 포맷을 조정하려면 openpyxl
을 활용할 수 있습니다.
from openpyxl import load_workbook
# 파일 저장
df.to_excel("styled_output.xlsx", index=False)
# 열 너비 조정
wb = load_workbook("styled_output.xlsx")
ws = wb.active
ws.column_dimensions["A"].width = 20
ws.column_dimensions["B"].width = 30
wb.save("styled_output.xlsx")
4. Excel 파일 데이터 처리
4.1 Excel 파일에서 데이터 필터링
Pandas를 사용하면 Excel 파일에서 특정 조건을 만족하는 데이터를 필터링할 수 있습니다.
# 특정 조건을 만족하는 데이터 선택
df_filtered = df[df["Age"] > 30]
print(df_filtered.head())
4.2 데이터 그룹화 및 집계
Excel 데이터를 Pandas로 가져온 후 그룹화하여 분석할 수 있습니다.
# 'Department' 컬럼을 기준으로 평균 나이 계산
department_avg_age = df.groupby("Department")["Age"].mean()
print(department_avg_age)
4.3 Excel 파일에서 특정 데이터 찾기
# 특정 값이 포함된 행 찾기
search_result = df[df["Name"].str.contains("John", na=False)]
print(search_result)
5. 마무리
이번 포스팅에서는 Pandas를 사용하여 Excel 파일을 다루는 다양한 방법을 살펴보았습니다. read_excel()
과 to_excel()
을 사용하여 데이터를 불러오고 저장하는 기본적인 작업부터, 시트 지정, 열 선택, 데이터 필터링 및 그룹화까지 여러 가지 실습을 진행했습니다.
Pandas와 Excel을 함께 활용하면 데이터 분석 작업이 더욱 편리해집니다. 앞으로 실무에서 활용할 때 도움이 되기를 바랍니다.
'Python Pandas' 카테고리의 다른 글
Pandas SQL 파일 포맷 다루기 (0) | 2025.02.05 |
---|---|
Pandas JSON 파일 포맷 다루기 (0) | 2025.02.04 |
Pandas로 CSV 파일 다루기 (0) | 2025.02.02 |
Series와 DataFrame의 차이 및 기본 생성 방법 (0) | 2025.02.01 |
Pandas란? 데이터 분석을 위한 필수 라이브러리 (0) | 2025.02.01 |