교보문고 구매 페이지, 알라딘 구매 페이지, yes24 구매 페이지
CHAPTER 01과 CHAPTER 02의 내용은 아래 링크로 확인하실 수 있습니다.
파이썬의 엑셀, 판다스 라이브러리
CHAPTER 01 판다스 입문
1.1 판다스 소개
1.2 파이썬 개발 환경
CHAPTER 02 파이썬 기초와 넘파이 라이브러리
2.1 변수와 자료형
2.2 제어문과 함수
2.3 클래스와 객체, 라이브러리
본 포스팅의 내용은 책에서 발췌된 자료로, 저작권 보호를 받고 있습니다.
허락 없이 복제나 배포는 삼가해 주시기 바랍니다.
2.1 변수와 자료형
판다스는 파이썬의 데이터 분석을 위한 강력한 라이브러리이기에 효과적으로 학습하려면 기초 파이썬에 대한 이해가 선행되어야 한다. 하지만 이것이 파이썬을 완전히 통달해야 한다는 의미는 아니다. 아주 기본적인 내용만 알아도 판다스 학습에는 문제가 없다. 간단히 기본적인 파이썬 개념을 훑어보고 학습 과정에서 용어나 개념에 대한 문제가 발생할 때 이번 장을 참고하자. 가장 기초적인 내용인 변수와 자료형부터 시작해 보자.
2.1.1 변수
변수는 프로그래밍에서 데이터를 저장하는 공간이다. 파이썬에서 변수를 활용하면 데이터가 메모리에 저장되고 변수명으로 데이터에 접근할 수 있다. 숫자, 문자열 등 다양한 종류의 데이터를 변수에 지정하고 지정된 데이터의 변경도 가능하다.
파이썬에서 변수를 지정하는 것은 간단하다. 변수명을 정하고 등호(=)를 사용해 데이터를 변수에 지정한다. 파이썬은 간결함을 지향하기에 변수를 지정할 때도 자료형을 별도로 명시할 필요가 없다.
변수명을 정하는 규칙, 즉 명명법은 간결함을 미덕으로 생각하는 파이썬답게 복잡하지 않다. 다음 몇가지 간단한 규칙과 권고를 따르자.
첫째, 변수명의 첫 글자로 문자나 언더스코어(_)만 사용할 수 있으며 이후에는 문자, 숫자, 언더스코어의 조합을 사용할 수 있다. 파이썬에서 변수명은 주로 소문자를 사용한다.
둘째, 소문자와 대문자는 구별된다. 예를 들어 df와 Df는 서로 다른 변수로 인식된다. 앞서 이야기했듯이 파이썬에서는 변수명에 소문자를 사용하자.
셋째, True, False, if 등의 이미 파이썬 문법에 포함된 키워드나 print 등 함수명은 변수명으로 사용하지 않는다.
판다스의 데이터 프레임(주석1)을 변수로 지정할 때는 주로 데이터 프레임의 약자인 df를 활용해 df, df1,df_stock 등으로 지정한다.
2.1.2 정수
정수는 수학에서 사용하는 정수와 동일하다. 파이썬에서는 int 타입으로 표현된다. 정수형 데이터는 프로그래밍에서 가장 기본적이고 빈번하게 사용되는 자료형이다. 정수 등의 수치형 자료형은 덧셈, 뺄셈, 곱셈처럼 기본적인 수학 연산뿐 아니라 몫, 나머지 연산 등을 수행하며 비교 연산도 가능하다.
2.1.3 실수
실수는 소수점을 포함하는 숫자를 의미하며, 판다스에서는 실수를 주로 부동 소수점 자료형(float)으로 다룬다. 부동 소수점은 다음과 같은 실수 표현법이다.
하지만 부동 소수점은 파이썬에서 실수 데이터를 인식하고 연산할 때 사용하는 방법일 뿐 출력을 부
동 소수점으로 하는 것은 아니다. 따라서 부동 소수점 자료형을 실수형 자료형으로 생각해도 좋다.
[코드 2-1] 실수의 출력
13.01 # 부동 소수점으로 출력하는 것은 아니다.
[출력]
13.01
2.1.4 문자열
파이썬에서는 큰따옴표(" ") 또는 작은따옴표(' ')로 둘러싸인 텍스트 데이터를 나타내는 자료형을 문자열 자료형(str)으로 표현한다. 문자열에서 대소문자는 구분해야 하니 유의하자. 예를 들어 'abc'와 'Abc'는 서로 다른 문자열을 의미한다. 또한 문자열은 문자열 연결, 인덱싱과 슬라이싱, 문자열 포매팅 등 다양한 연산을 지원한다.
문자열의 연결은 덧셈 연산자로 가능하다. 판다스에서도 빈번하게 쓰이는 기법이니 알아두어야 한다.
[코드 2-2] 문자열의 연결
'김' + '판다'
[출력]
'김판다'
덧셈으로 문자열을 연결하나, 뺄셈으로 문자열을 제거할 수는 없다.
문자열은 인덱싱과 슬라이싱을 수행해 일부 문자열만 추출한다. 인덱싱과 슬라이싱 기법이 생소하더라도 걱정할 필요는 없다. 추후 4.1에서 판다스의 인덱싱과 슬라이싱을 학습하면서 인덱싱과 슬라이싱 기법을 정확히 학습할 예정이다. 문자열도 인덱싱과 슬라이싱이 가능하다는 것만 알아두면 충분하다.
[코드 2-3] 문자열의 인덱싱
a = '김판다'
a[0] # 첫 번째 문자열을 반환한다.
[출력]
'김'
len 함수를 사용해 문자열의 길이를 반환한다.
[코드 2-4] len 함수로 문자열의 길이 반환
len(a) # 변수 a인 문자열 '김판다'의 길이를 반환한다.
[출력]
3
len 함수는 문자열의 길이도 구할 수 있지만, 배열에 적용하면 배열의 길이를 반환한다. 그렇기에 판다스에서도 자주 사용되는 함수이니 알아두자.
문자열 포매팅 기법으로 문자열 사이에 변수의 값을 삽입하여 새로운 문자열을 만든다. f-string 기법이나 format 함수를 활용한다. f-string 방식은 문자열 앞에 접두사 f를 붙이고, 중괄호({}) 안에 변수를 넣어 해당 변수의 값이 문자열 중간에 들어가게 한다.
[코드 2-5] 문자열 포매팅(f-string 기법)
a = '김판다'
b = '판다스'
f'{a} 강사와 함께 {b}를 배웁시다'
[출력]
'김판다 강사와 함께 판다스를 배웁시다'
format 함수를 이용하면 접두사 f 없이 문자열 내 중괄호({})를 사용하여 변수를 위한 공간을 설정한다. format 함수의 인수로 그 공간에 올 변수를 지정하면, 변수의 값이 포함된 문자열을 생성한다.
[코드 2-6] 문자열 포매팅(format 함수)
'{} 강사와 함께 {}를 배웁시다'.format(a, b)
[출력]
'김판다 강사와 함께 판다스를 배웁시다'
문자열을 연결하기만 해도 충분히 기능을 수행하지만 문자열 포매팅 기법을 익히면 복잡한 상황에서도 코드가 간결해진다. 지금 학습하기 어렵다면 일단은 문자열 연결을 사용하고, 문자열 포매팅이 필요한 시점에 다시 이 단원을 참고하자.
[코드 2-7] 문자열 포매팅 대신 문자열 연결을 사용
a + ' 강사와 함께 ' + b + '를 배웁시다'
[출력]
'김판다 강사와 함께 판다스를 배웁시다'
2.1.5 불
참을 뜻하는 True와 거짓을 뜻하는 False는 불리언(boolean) 또는 불(bool) 자료형으로 지칭한다. 데이터 분석에서 데이터의 필터링이나 선택적 처리를 할 때 불 자료형이 적극적으로 활용된다. 파이썬에서 비교 연산의 결과로 불 자료형으로 반환된다. <=, >=처럼 등호가 함께 쓰이는 비교 연산은 우측에 등호가 위치하는 것이 특징이다.
불 자료형은 산술 연산을 할 때 True는 1, False는 0으로 처리해 연산한다.
[코드 2-8] 불(bool) 자료형의 산술 연산
True + True + False
[출력]
2
불 자료형은 논리 연산을 통해 복잡한 조건식을 구성하는 데 사용된다. 논리 연산은 여러 True와 False 값을 조합하여 하나의 불 자료형 값을 반환하는 데 사용되며, True와 False 값을 서로 맞바꾸는 데도 사용된다.
[코드 2-9] 불(bool) 자료형의 논리 연산
True & True & False # 모두 True인 것이 아니므로 False를 반환한다.
[출력]
False
파이썬에서는 논리 연산자와 비트 연산자를 모두 논리 연산에 활용하지만, 판다스의 데이터 프레임은 오직 비트 연산자만을 논리 연산에 사용한다. 이는 파이썬을 학습한 후 판다스를 시작하는 입문자들에게 자주 발생하는 에러 중 하나이므로 주의 깊게 기억해야 한다.
2.1.6 리스트
리스트는 파이썬에서 복수의 데이터를 저장하는 데 사용되는 자료형이다.(주석 3) 리스트는 대괄호([ ]) 안에 콤마(,)로 구분하여 여러 데이터를 관리하며, 하나의 변수로 지정할 수도 있다. 또한 리스트는 반복문과 함께 사용되어 데이터의 집합을 순회하며 각 항목에 대한 처리를 수행하기에도 적합하다.
대괄호를 열고 콤마로 구분해, 여러 데이터를 입력하면 리스트가 생성된다.
[코드 2-10] 리스트의 생성
[1, 2, 3]
[출력]
[1, 2, 3]
type 함수를 사용하면 데이터의 자료형이 확인된다. type 함수로 리스트의 자료형을 확인해 보자.
[코드 2-11] type 함수로 자료형 확인
type([1, 2, 3])
[출력]
List
문자열과 마찬가지로 덧셈으로 리스트끼리 연결한다.
[코드 2-12] 리스트의 연결
[1, 2, 3] + [4, 5]
[출력]
[1, 2, 3, 4, 5]
곱셈 연산자를 사용하여 리스트를 반복한다. 문자열의 곱셈 역시 문자열을 반복하지만, 거의 사용되지 않는다. 반면에 리스트의 반복은 가끔 사용되므로 알아두자.
[코드 2-13] 리스트의 반복
[1, 2, 3] * 2
[출력]
[1, 2, 3, 1, 2, 3]
리스트도 인덱싱과 슬라이싱을 수행해 일부 원소만 추출할 수 있다. 추후 데이터 프레임의 인덱싱과 슬라이싱에서 본격적으로 학습할 내용이다.(주석 4)
[코드 2-14] 리스트의 인덱싱
a = [1, 2, 3]
a[0] # 리스트의 첫 번째 원소를 추출한다.
[출력]
1
리스트에 len 함수를 적용하면 배열의 길이를 반환한다. a가 원소의 개수가 3개인 리스트이므로 len(a)는 3을 반환한다.
[코드 2-15] 리스트의 길이 반환
len(a)
[출력]
3
리스트는 판다스에서도 데이터를 배정하거나, 복수의 열을 함수에 입력할 때 등 매우 자주 사용하는 자료형이다. 정확하게 이해하자.
파이썬에서는 변수의 자료형을 표현하거나, 함수를 정의 및 호출할 때 그리고 데이터를 인덱싱할 때 다양한 괄호를 사용한다. 입문자는 이러한 괄호들을 정확하게 사용하는 것이 헷갈릴 수 있다. 이를 간단히 기억하는 방법은, 글자 수가 많을수록 더 복잡한 모양의 괄호를 사용한다고 연상해 보는 것이다. 물론 이는 정확한 규칙이 아니며, 입문자가 다양한 괄호의 용도를 기억하는 데 도움을 주는 가벼운 암기법이다.
2.1.7 튜플
튜플(tuple)도 리스트와 마찬가지로 파이썬에서 복수의 데이터를 저장하는 데 사용되는 자료형이다. 튜플은 소괄호 안에 콤마(,)로 구분하여 여러 데이터를 관리하며, 리스트와 유사하지만 불변성(immutable)을 가진 점이 튜플의 특징이다. 불변성은 일단 생성되면 그 내용을 변경할 수 없다는 뜻이다. 그러한 불변성 때문에 변하지 않아야 하는 데이터를 안전하게 저장하는 데 유용하다. 파이썬 경험이 적은 입문자들은 이 개념을 잘 이해하지 못한다. 판다스와 관련해서는 불변성이 있어야 키(key)로 사용된다는 정도로만 이해해도 좋다.
소괄호를 열고 콤마로 구분해 여러 데이터를 입력하면 튜플이 생성된다.
[코드 2-16] 튜플의 생성
(1, 2, 3)
[출력]
(1, 2, 3)
type 함수로 자료형을 확인해 보자.
[코드 2-17] type 함수로 튜플의 자료형 확인
type((1, 2, 3))
[출력]
Tuple
튜플은 괄호를 생략하고도 사용한다.
[코드 2-18] 튜플은 괄호를 생략할 수도 있다.
a = 1, 2
type(a)
[출력]
Tuple
튜플은 괄호를 생략하는 기능을 활용하여 여러 변수를 동시에 지정할 때는 괄호 없이 튜플을 생성해 변수로 지정할 때가 많다.
[코드 2-19] 튜플을 이용해 복수의 변수 한 번에 지정하기
b, c = 1, 2
print(b)
print(c)
[출력]
1 # b의 출력
2 # c의 출력
불변성 덕분에 튜플은 딕셔너리의 키로 사용될 수 있으며, 판다스에서는 튜플을 멀티 인덱스로 활용한다. 판다스로 파이썬에 입문한 독자들은 멀티 인덱스에 튜플이 쓰인다는 것만 기억하자.
2.1.8 딕셔너리
딕셔너리는 키(key)와 밸류(value)의 쌍으로 데이터를 저장하는 파이썬의 자료형이다. 딕셔너리는 중괄호({})를 사용하며, 각 키와 밸류는 콜론(:)으로 연결된다. 딕셔너리의 키는 불변성을 가진 자료형이어야 하며, 주로 문자열이 사용되며 튜플도 사용한다.
중괄호를 열고 각 키와 밸류는 콜론(:)으로 연결하고, 콤마(,)로 구분하여 여러 데이터를 입력하면 딕셔너리를 생성한다.
[코드 2-20] 딕셔너리 생성
{'가': 1, '나': 2}
[출력]
{'가': 1, '나': 2}
딕셔너리는 데이터를 키로 추출하는 것이 장점이다. 대괄호에 키를 입력하면 해당 키에 맞는 밸류가 반환된다.
[코드 2-21] 딕셔너리의 인덱싱
a = {'가': 1, '나': 2}
a['가']
[출력]
1
딕셔너리는 원소를 추가하거나 수정할 수 있다. 특정 키로 인덱싱한 후 값을 배정하면, 해당 키의 밸류가 새로운 밸류로 수정된다.
[코드 2-22] 딕셔너리의 원소 수정하기
a = {'가': 1, '나': 2}
a['가'] = 3
a
[출력]
{'가': 3, '나': 2}
특정 키로 인덱싱한 후 값을 배정할 때, 해당 키가 딕셔너리에 존재하지 않을 때는 새로운 키와 밸류의 쌍이 딕셔너리에 생성된다.
[코드 2-23] 딕셔너리에 원소 추가하기
a = {'가': 1, '나': 2}
a['다'] = 3 # '다'는 a에 존재하지 않는 키이다.
a
[출력]
{'가': 1, '나': 2, '다': 3}
판다스의 데이터 프레임과 시리즈는 딕셔너리 구조와 동일하다. 따라서 인덱싱, 원소의 수정, 원소의 추가를 동일한 방식으로 수행할 수 있다. 또한 딕셔너리는 매퍼5로서의 역할도 수행한다. 이러한 특성들 때문에 딕셔너리는 판다스에서도 자주 사용되는 자료형이다.
주석
1 데이터 프레임은 우리가 배우는 판다스 라이브러리에서 주로 다루는 클래스이다. 클래스는 이후 2.3.1. 클래스와 객체에서 다룬다.
2 |는 버티컬 바(vertical bar)이며 통상적으로 시프트와 역슬래시(\)를 함께 눌러 입력한다. 역슬래시가 원화(₩)로 표기된 키보드에서는 시프트와 원화를 함께 눌러 입력한다.
4 4.1.7. 로케이션 인덱싱과 슬라이싱(iloc 인덱서)에서 리스트의 인덱싱과 슬라이싱도 학습한다.
3 리스트와 이후로 나오는 딕셔너리, 튜플은 모두 복수의 데이터를 다룰 수 있는 자료형이다.
5 매퍼는 매핑하는 매개체를 뜻한다. 자세한 내용은 4.3.6. 매핑과 매퍼 참고
'파이썬의 엑셀, 판다스 라이브러리 > CHAPTER 02. 파이썬 기초와 넘파이 라이브러리' 카테고리의 다른 글
2.3 클래스와 객체, 라이브러리 (0) | 2024.10.15 |
---|---|
2.2 제어문과 함수 (0) | 2024.10.15 |