본문 바로가기
파이썬의 엑셀, 판다스 라이브러리/CHAPTER 02. 파이썬 기초와 넘파이 라이브러리

2.2 제어문과 함수

by 김판다t 2024. 10. 15.

교보문고 구매 페이지, 알라딘 구매 페이지yes24 구매 페이지

 

CHAPTER 01과 CHAPTER 02의 내용은 아래 링크로 확인하실 수 있습니다.

 

파이썬의 엑셀, 판다스 라이브러리
CHAPTER 01 판다스 입문
  1.1 판다스 소개
  1.2 파이썬 개발 환경
    
CHAPTER 02 파이썬 기초와 넘파이 라이브러리
  2.1 변수와 자료형
  2.2 제어문과 함수
  2.3 클래스와 객체, 라이브러리

 

CHAPTER 03 이후의 일부 페이지 미리보기

 

 

본 포스팅의 내용은 책에서 발췌된 자료로, 저작권 보호를 받고 있습니다.
허락 없이 복제나 배포는 삼가해 주시기 바랍니다.

 

2.2 제어문과 함수


2.1에서는 파이썬의 초급 과정을 간단히 다루었으며 2.2에서는 파이썬의 중급 과정으로서 제어문과 함수를 다룬다. 제어문은 프로그램의 흐름을 조절하는 데 사용되며 함수는 코드의 재사용성을 높이고 코드 구조를 명확하게 하는 데 기여한다. 판다스 학습을 위해서 제어문에서는 반복문 구조를 이해하고, 함수는 기본 개념 정도를 이해하자.

 

2.2.1 제어문


파이썬의 제어문은 프로그램의 흐름을 조절하는 구문이며, 주어진 조건에 따라 다른 경로로 실행된다. 제어문에는 조건문과 반복문 등이 있다. 조건문은 if 문을 사용하며 특정 조건이 참인지 거짓인지에 따라 코드의 실행 여부를 결정한다. 반복문은 조건이 만족하는 동안 코드를 반복해서 실행한다.

 

판다스에서는 조건문을 단독으로 거의 사용하지 않으며, 반복문도 가장 기본적인 형태의 for 문만 가끔 사용하므로 제어문 중에 for 문만 학습하자.

 

for 문은 파이썬에서 가장 널리 쓰이는 반복문이다. for 문은 크게 for 파트와 do 파트로 구성되며, for 파트에서는 반복을 위한 조건이 설정된다. for 파트에서 주어진 리스트나 반복 가능한(iterable) 배열의 원소들에 순차적으로 접근해 추출되어, 이후 do 파트에서 지정한 변수([그림 2-5]에서 do 파트의 i)로 사용되어 코드를 수행한다. 이 구조를 통해 배열의 각 원소에 대해 동일한 작업을 반복해서 수행한다.


[그림 2-5]의 코드를 직접 실행해 보자. 반복하도록 주어진 리스트 ['a', 1, 3.1]의 각 원소의 자료형을 하나씩 출력한다.

 

[코드 2-24] 반복문 수행하기

for i in ['a', 1, 3.1]:
    print(type(i))

 

[출력]

<class 'str'> # 'a'의 자료형을 출력
<class 'int'> # 1의 자료형을 출력
<class 'float'> # 3.1의 자료형을 출력

 

 

[코드 2-24]를 반복문을 사용하지 않고 수행한다면 다음 코드와 같다.


[코드 2-25] 반복문을 사용하지 않고 [코드 2-24]를 수행하는 코드

print(type('a'))
print(type(1))
print(type(3.1))


[코드 2-24]와 [코드 2-25]를 비교하면, 반복문이 코드를 매우 간결하게 하는 점을 알 수 있다.

 

파이썬에서 반복문은 매우 중요한 제어문 중 하나이지만, 판다스에서는 데이터 분석을 더 효율적으로 수행하고자(주석 6) 주로 벡터화 연산을 활용한다. 이러한 접근 방식 때문에 판다스를 사용할 때는 반복문의 사용이 매우 제한적이다.


숙달된 판다스 유저는 판다스를 사용한 코드에서 반복문을 많이 사용하지 않으며 그 대신 벡터화 연산으로 데이터 처리 속도와 효율성을 높인다. 그러나 판다스 고급 단계에 도달하기 전까지는 때때로 반복문을 사용하여 해결할 수 없는 문제들을 해결해야 하고, 그런 측면에서 반복문의 효용이 있다. 그렇지만 여러분이 파이썬 초보자라서 반복문도 익숙하지 않다면 반복문을 연습하기보다는 판다스의 벡터화 연산에 더 많은 시간을 투자하여 학습하는 것이 더 바람직하다. 벡터화 연산이 데이터 처리 속도와 효율성을 크게 향상하기 때문이다.

 

2.2.2 함수


지속해서 수행하는 작업을 함수로 정의해 두면 코드의 재사용성을 높이고 코드의 구조가 명확해진다. 함수는 define을 뜻하는 def 키워드를 사용하여 정의되며, 명명한 함수의 이름으로 호출된다. 함수 내에는 매개변수(parameter)를 정의하며 이를 통해 함수 외부에서 인수(argument)를 전달받아 처리한다.(주석 7) 또한, return 키워드를 사용하여 함수의 결과를 반환한다.

 


[그림 2-6]처럼 add_one 함수를 정의하고, add_one 함수를 호출해 2를 입력하면, 입력된 인수에 1을 더한 3이 반환된다.

 

[코드 2-26] 함수 정의하기

def add_one(x):
    return x + 1
# 생성한 add_one 함수를 호출해 인수 2를 입력하기
add_one(2)


[출력]

3

 


판다스를 사용하는 주된 목적 중 하나는 바로 판다스 라이브러리의 효율적인 함수 활용이다. 그렇기에 전반적으로 함수의 활용도가 제어문에 비해 월등히 높다. 판다스를 학습하고자 파이썬을 선수 학습할 때, 제어문, 특히 반복문에 많은 시간을 할애하는 경우를 자주 본다. 그러나 판다스를 학습하는 선수 학습에서는 반복문보다는 함수에 대한 이해가 가장 중요하다. 특히 lambda 함수(주석 8) 등 고급 함수 사용법이 판다스에서 자주 사용된다. 그 중요도를 감안하여 함수에 대한 학습은 이 책에서 계속 이루어질 것이다.

 

 

 

 

주석

 

6 벡터화 연산은 판다스의 큰 특징이고 추후 학습할 내용이다. 벡터화 연산의 특징은 함수나 코드를 개별 요소에 적용해 반복하지 않고, 함수를 전체에 적용한다. 2.3.3 넘파이 라이브러리와 5.1.1. 벡터화 연산에서 학습한다.

7 3.1.4. 매개변수와 인수, 기본값에서 더 깊이 학습한다.

8 lambda(람다) 함수는 추후 9.2.3. lambda 함수와 apply에서 학습한다.