*본 게시물은 한양대학교 컴퓨터소프트웨어학과 정소희 교수님의 <창의적 프로그래밍> 수업 수강 후,
그 일부를 재구성하여 작성된 게시물입니다. *
[Series의 구조]
시리즈는 기본적으로 Python의 딕셔너리(Dictionary) 자료형과 구조가 유사하다.
Key : Value형식으로 구성된 딕셔너리형과 같이,
각각의 데이터와 이에 대응하는 인덱스로 구성되어 있다.
결국, 시리즈는 데이터로 구성된 1차원 배열 형태!!
[Series 예시]
다음과 같은 Series를 생성하려 한다.
[Pandas 모듈 임포트]
import pandas as pd
:판다스 모듈을 alias를 통해 import 해주기
1. Series 생성
[Series 생성]
1) 인덱스 미지정
menu = pd.Series(data = ['data1', 'data2', 'data3'], name = '시리즈명')
* 커피, 콜드브루, 밀크티를 Value로 갖는, '카페메뉴'라는 이름의 시리즈를 생성해주었다.
* 인덱스를 따로 지정해주지 않으면, 기본적인 숫자 인덱스가 부여됨을 알 수 있다.
2) 인덱스 지정
menu = pd.Series(data = ['커피', '콜드브루', '밀크티'], index = ['coffe', 'coldbrew', 'milktea'], name = '카페 메뉴')
index를 원하는대로 지정해줄 수도 있다. 앞으로 모든 menu Series 예시는 해당 Series를 사용할 것이다.
2.Series 의 Index, Values
[Series 인덱스 출력]
변수명.index
: 인덱스명들을 리스트 형식으로 출력해줌을 알 수 있다.
[Series 데이터 출력]
변수명.values
: 데이터명들을 리스트 형식으로 출력해줌을 알 수 있다.
[특정 데이터 선택 후 출력]
1) Integer Position을 이용하여 접근
변수명[주솟값]
2) Index Name을 이용하여 접근
변수명['인덱스명']
[복수의 데이터들 선택 후 출력]
1) 연속된 데이터들 출력
변수명[start : end]
Python의 슬라이싱(Slicing) 기법과 동일하다.
역시, 주솟값으로 접근할 때에는 end의 앞 요소까지 출력한다는 점까지 동일..
*Index name을 이용하여 접근하는 방법도 이와 동일하다.
2) 개별적인 데이터들 출력
변수명[[주솟값, 주솟값, ...]]
출력하고자 하는 데이터들이 여러개인 상황..
출력하고자 하는 데이터들의 주솟값들을 리스트(List)로 묶어서 출력해주면 된다.
*Index name을 이용하여 접근하는 방법도 이와 동일하다.
3.Series 의 연산
국어, 영어, 수학 과목의 점수를 나타내는 다음과 같은 시리즈를 생성해준다. (변수명: score1)
score1 = pd.Series(data = [90, 92, 100], index = ['국어', '영어', '수학'], name = '시험성적')
1) Series와 숫자 연산
Series객체 + 연산자(+, -,*, /) + 숫자
score1 의 각 요소(국어, 영어, 수학)의 데이터에 각각 20을 더하고 싶다면,,
score1 + 20
만 해주면 된다.
그 결과는..
각 과목에 각각 20점씩 추가된 것을 볼 수 있다.
(그나저나 만점이 100점이 아니었나보다..ㅋㅋ)
2) Series와 Series 연산
Series객체 + 연산자(+, -,*, /) + Series객체
같은 과목에, 순서만 다른 다음과 같은 시리즈를 생성해 주었다. (변수명: score2)
score2 = pd.Series(data = [30, 20, 28], index = ['국어', '수학', '영어'], name = '시험성적')
'국어', '영어', '수학' 순이었던 위의 score1과 과목 순서가 다른 score2 시리즈이다.
이때, score1시리즈와 score2 시리즈를 합한다면 어떻게 될까..?
다음과 같다.
이상하다..
분명 인덱스 순서가 다른 두 시리즈인데도, 따로 순서 정렬을 해주지 않아도, 자동으로 같은 인덱스끼리 데이터가 연산된 것을 볼 수 있다.
이를 통해 Pandas는 같은 Index들을 찾아 재정렬한 후, 같은 Index들의 데이터를 연산함을 알 수 있다.
'데이터 관리) Pandas' 카테고리의 다른 글
[Pandas] 자료구조(3): 데이터프레임(DataFrame) 정보 수정, 정렬 (0) | 2022.11.29 |
---|---|
[Pandas] 자료구조(2): 데이터프레임(DataFrame) 생성, 정보추출 (3) | 2022.11.29 |
[Pandas] Pandas란 무엇이고, 왜 쓰는것일까? (2) | 2022.11.12 |