Python으로 Fuction 함수 만들기

제2편 더 많은 사례들 소개

by 박정수

Python으로 데이터 커스터마이징: Excel을 넘어서는 가능성을 찾아서


지난주에 우리는 코딩 초보자들에게 def() 키워드를 사용해 간단한 함수, 예를 들어

sum을 만드는 법을 소개했습니다. 이는 프로그래밍의 첫걸음으로서 매우 중요한 개념입니다. 오늘은 한 단계 더 나아가, 왜 Python이 Excel보다 더 강력한 도구인지, 그리고 커스터마이징 측면에서 어떤 장점을 제공하는지 살펴보겠습니다.


1. Excel의 한계와 Python의 자유

Excel은 직관적이고 접근성이 뛰어나지만, 복잡한 데이터 처리나 자동화에는 한계가 있습니다. 예를 들어, 수천 개의 행을 가진 데이터에서 조건부 계산을 반복하거나, 여러 파일을 병합하는 작업은 Excel에서 매우 번거롭습니다. 반면 Python은 몇 줄의 코드로 이러한 작업을 자동화할 수 있습니다. 이는 단순한 편리함을 넘어, 시간과 비용을 절약하는 강력한 경쟁력이 됩니다.


2. 커스터마이징의 무한한 가능성

Python에서는 사용자가 원하는 로직을 자유롭게 구현할 수 있습니다. 예를 들어, 특정 조건에 따라 데이터를 필터링하고, 새로운 계산식을 적용하며, 결과를 시각화하는 과정까지 모두 코드로 제어할 수 있습니다.

pandas 라이브러리를 사용하면 Excel의 피벗 테이블보다 훨씬 정교한 데이터 분석이 가능하며,

matplotlib나 seaborn 라이브러리를 통해 시각화까지 확장할 수 있습니다.


3. 재사용성과 확장성

Excel에서 만든 매크로나 수식은 특정 파일에 종속되는 경우가 많습니다. 그러나 Python 코드는 모듈화가 가능해, 한 번 작성한 함수를 다양한 프로젝트에서 재사용할 수 있습니다. 또한 오픈소스 생태계 덕분에 수많은 라이브러리를 활용해 기능을 확장할 수 있습니다. 예를 들어, 웹에서 데이터를 자동으로 가져오거나, 머신러닝 모델을 적용하는 것도 Python에서는 자연스럽게 연결됩니다.


4. 협업과 자동화

Python 스크립트는 버전 관리 시스템(Git)과 결합해 협업을 용이하게 합니다. 팀원 간 코드 리뷰와 개선이 가능하며, 자동화된 파이프라인을 구축해 반복 작업을 최소화할 수 있습니다. 이는 데이터 기반 의사결정이 중요한 현대 비즈니스 환경에서 큰 강점입니다.


결론적으로, Excel은 훌륭한 도구지만, Python은 데이터 처리와 분석에서 훨씬 더 유연하고 강력한 가능성을 제공합니다. 코딩을 배우는 것은 단순한 기술 습득을 넘어, 문제 해결 능력을 확장하고 새로운 기회를 창출하는 열쇠입니다. 오늘부터는 Excel을 넘어 Python으로 데이터의 세계를 탐험해 보세요.


5. 추가 사례들 소개


1) 사례 1

# 리스트의 합을 구하는 함수

def calculate_sum(numbers):

total = 0

for num in numbers:

total += num

return total

# 사용 예시

data = [10, 20, 30, 40]

print("합계:", calculate_sum(data))

#결과 : 합계: 100


2) 사례 2: 사례 1을 더 고급스럽게 이용하기

import pandas as pd

# 가상의 판매 데이터 생성

data = {

'제품': ['A', 'B', 'C', 'D', 'E'],

'판매량': [50, 120, 90, 200, 150],

'매출': [50000, 120000, 90000, 200000, 150000]

}

df = pd.DataFrame(data) #data를 dataframe형식으로 묶기

print("가상의 판매 데이터:")

print(df)


#출력결과

가상의 판매 데이터:

제품 판매량 매출

0 A 50 50000

1 B 120 120000

2 C 90 90000

3 D 200 200000

4 E 150 150000


# 조건: 판매량이 100 이상인 행을 찾아서, 그들의 '매출'을 합계하세요

filtered_sum = df [df ['판매량'] >= 100]['매출']. sum()

print("판매량 100 이상인 매출 합계:", filtered_sum)

#출력결과

판매량 100 이상인 매출 합계: 470000


#혹시 date가 엄청나가 크다면 excel로 저장을 해서 처리를 하면 더 빨라요..

# Excel 파일로 저장

df.to_excel("sales_data.xlsx", index=False)

print("Excel 파일로 저장 완료: sales_data.xlsx")

#현재 이 코드가 있는 folder에 자동으로 저장이 됩니다.


#출력결과

Excel 파일로 저장 완료: sales_data.xlsx


#excel에서 데이터를 불러와서 처리합니다.

import pandas as pd

df = pd.read_excel("sales_data.xlsx") # 파일명은 실제 파일로 변경하세요

# 조건: 판매량이 100 이상인 행의 '매출' 합계

filtered_sum = df [df ['판매량'] >= 100]['매출']. sum()

print("판매량 100 이상인 매출 합계:", filtered_sum)

#출력결과

판매량 100 이상인 매출 합계: 470000


만일 데이터 개수가 10개가 아니라 백만 개라면 excel은 파일을 open 하는 데에만 엄청난 시간이 걸리지만, python file을 open 할 필요 없이 바로 연산에 들어가게 되므로 연산처리 속도가 excel에 비해 빠릅니다.


다음 편에도 왜 EXCEL이 아니라 Python을 사용해야 하는지 알려드릴게요.

이전 20화Python으로 Fuction 함수 만들기