Excel & IT Info

아이엑셀러 닷컴, 엑셀러TV

Python

Excel의 기능을 확장하는 5가지 파이썬 라이브러리

권현욱(엑셀러) 2025. 3. 9. 16:53
반응형

들어가기 전에

Excel은 데이터 관리 및 분석을 위한 강력한 도구지만 복잡한 데이터 변환, 대규모 데이터 세트 및 반복적인 작업을 처리할 때 종종 부족함을 느낄 수 있습니다(물론 VBA나 파워 쿼리 등의 도움을 받을 수 있습니다). 이럴 때 Python 라이브러리를 추가하면 잠재력이 확장됩니다. 작업을 자동화하고, 빠르게 분석하고, 놀라운 시각화를 만들 수 있는 파이썬 라이브러리를 소개합니다.

권현욱(엑셀러) | 아이엑셀러 닷컴 대표 · Microsoft MVP · 엑셀 솔루션 프로바이더 · 작가

이미지: 아이엑셀러 닷컴


이 글은 아래 기사 내용을 토대로 작성되었습니다만, 필자의 개인 의견이나 추가 자료들이 다수 포함되어 있습니다.

  • 원문: 5 Python libraries to extend Excel’s capabilities
  • URL: https://www.xda-developers.com/python-libraries-extend-excels-capabilities/


1. Pyexcel

다양한 파일 형식을 자주 다루는 경우, Pyexcel 라이브러리를 사용하면 통합 문서 데이터 작업을 간소화할 수 있습니다. CSV, XLS, XLSX, ODS 등 다양한 스프레드시트 형식의 데이터를 읽고, 쓰고, 조정할 수 있는 단일 API를 제공합니다. 언제나 그렇듯이, Pyexcel을 사용해 스프레드시트에서 데이터를 로드하고 Pandas를 사용해 분석 및 조작하는 Pandas와 같은 다른 Python 라이브러리와 쉽게 통합할 수 있습니다.

 

2. Squarify

Excel 시트에 카테고리, 하위 카테고리 및 개별 항목과 같은 계층 구조가 있나요? 트리맵은 이러한 계층 구조 내의 관계를 시각화하는 편리한 방법이 될 수 있습니다. 이럴 때 Squarify 라이브러리가 유용합니다. 아래 코드를 사용하여 각 사각형의 크기가 크기 목록의 값에 해당하는 트리맵을 만들 수 있습니다.

import squarify
import matplotlib.pyplot as plt

# Sample data (could be derived from Excel)
sizes = [50, 25, 15, 10]
labels = ["Category A", "Category B", "Category C", "Category D"]

# Create the treemap
squarify.plot(sizes=sizes, label=labels, alpha=.8)
plt.axis('off')
plt.show()

 

3. Openpyxl

Openpyxl Python 라이브러리는 Excel 파일을 읽고 쓰도록 설계되었습니다. 처음부터 소프트웨어를 열지 않고도 데이터를 읽고, 기존 콘텐츠를 편집하고, 새 시트를 만들고, 데이터를 다시 Excel 파일에 쓸 수 있습니다. 고급 사용자는 원활한 데이터 분석 워크플로우를 위해 pandas와 같은 다른 Python 라이브러리와 openpyxl을 결합할 수도 있습니다.

예를 들어, 이름과 연령이 포함된 표가 있는 간단한 Excel 파일(사람)을 만들 수 있습니다.

from openpyxl import Workbook

# Create a new workbook
workbook = Workbook()

# Get the active worksheet
worksheet = workbook.active

# Add some data
worksheet["A1"] = "Name"
worksheet["B1"] = "Age"
worksheet["A2"] = "Alice"
worksheet["B2"] = 30
worksheet["A3"] = "Bob"
worksheet["B3"] = 25

# Save the workbook
workbook.save("people.xlsx")

 

4. Matplotlib

이미지: xda

 

기본 Excel 차트가 워크플로에 충분하지 않다면 Matplotlib 라이브러리를 사용하세요. 이 라이브러리는 Excel의 표준 차트 유형 외에도 다양한 차트 유형을 제공합니다. 분산형 차트(위 스크린샷 참조), 히스토그램, 히트 맵, 3D 플롯 등을 포함할 수 있습니다. 색상과 레이블부터 축과 범례에 이르기까지 세세한 부분까지 차트 모양을 조정할 수 있습니다.

Matplotlib은 또한 확대/축소, 이동, 데이터를 더 자세히 탐색할 수 있는 대화형 플롯으로 한 단계 더 나아갔습니다. 이는 대규모 데이터 집합이나 매력적인 방식으로 데이터를 표시하고 싶을 때 매우 유용합니다. 예를 들어, 아래 코드를 사용하여 5개월 동안의 판매 추세를 보여주는 선 그래프를 만들 수 있습니다.

 

import matplotlib.pyplot as plt
# Sample data 
months = ["Jan", "Feb", "Mar", "Apr", "May"] 
sales = [1500, 1800, 1600, 2100, 2300]

# Create the plot 
plt.plot(months, sales)

# Add labels and title 
plt.xlabel("Month") 
plt.ylabel("Sales") 
plt.title("Monthly Sales")

# Show the plot 
plt.show()

 

5. Pandas

이미지: xda

 

Excel은 기본적인 스프레드시트 작업에 이상적이지만, 데이터로 더 많은 작업을 해야 할 때는 판다가 한 단계 더 발전합니다. 넘파이(NumPy)를 기반으로 구축되어 수백만 개의 행을 빠르고 효율적으로 처리합니다. 데이터를 정리, 변환, 분석하기 위한 다양한 도구를 제공합니다. 필터링, 정렬, 집계, 피벗, 복잡한 계산을 쉽게 수행할 수 있으며 Excel의 기본 제공 기능을 훨씬 뛰어넘는 기능을 사용할 수 있습니다.

 

스크립트를 작성하여 데이터를 처리하고, 보고서를 생성하고, 반복적인 작업을 자동화하여 시간을 절약하고 오류를 줄일 수 있습니다. 또한 Pandas는 Excel 파일뿐만 아니라 다양한 소스의 데이터로 작업할 수 있을 만큼 유연합니다. 예를 들어, 이 Python 코드 스니펫은 Pandas 라이브러리를 사용하여 Excel 파일에서 데이터를 읽고 처음 5개의 행을 표시합니다.

import pandas as pd

# Read the Excel file into a pandas DataFrame 
df = pd.read_excel("sales_data.xlsx")

# Print the first 5 rows of the DataFrame 
print(df.head())

 

마치며

Excel의 Python 통합은 대규모 데이터 집합을 다루는 모든 사람에게 획기적인 변화를 가져다줍니다. 앞에서 소개한 Python 라이브러리를 워크플로에 통합하여 데이터에서 더 깊이 있는 인사이트를 얻어 보세요.