Python Pandas

Pandas로 Excel 파일 다루기

PyExplorer 2025. 2. 3. 08:54
728x90

Pandas로 Excel 파일 다루기

1. 개요

Excel은 데이터 분석에서 자주 사용되는 포맷 중 하나입니다. Pandas는 read_excelto_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을 함께 활용하면 데이터 분석 작업이 더욱 편리해집니다. 앞으로 실무에서 활용할 때 도움이 되기를 바랍니다.

728x90