IE가 어른이 되기까지

[Python] 판다스 (Pandas) 의 구조 Series 알아보기 본문

DATA SCIENCE/Python

[Python] 판다스 (Pandas) 의 구조 Series 알아보기

기모랑의 초코 2023. 1. 3. 15:43

 

 

 

Pandas는 우리가 사용하기 쉬운 고성능 데이터 구조와

데이터 분석 도구를 제공합니다.

 

특히, 대표적인 데이터 구조는 SeriesDataFrame입니다.

먼저 Series에 대해 알아보도록 하겠습니다.

 

Series는 1D 배열로 이루어져 있습니다.

 

지금부터 Python으로 Series를 구현하는 방법에 대해

알아보도록 하겠습니다 !

 

 

 

 

Series 만들기
s = pd.Series([0,1,2,3])
s

 

Series는 위와 같은 코드를 통해 만들 수 있으며

실행시키면 앞서 설명드린 바와 같이 하나의 열의 형태로만 나타나고

앞에는 순서대로 index가 붙게 됩니다.

 

 

 

 

 

 

 

Series 산술 연산
s + [1000,2000,3000,4000]

이 경우에는 각 원소별로 산술연산이

적용되는 것을 볼 수 있습니다.

 

 

 

s + 1000

 

반면 위와 같은 코드는 하나의 숫자가 Series의 모든 원소에

더해지는 것을 알 수 있습니다.

 

 

 

 

 

 

 

Series 등호 / 부등호
s < 0

Series에 등호와 부등호를 사용하면

True 혹은 Flase의 결과로 나타납니다.

 

 

 

 

 

 

 

 

Series의 인덱스 레이블
s1 = pd.Series([10, 20, 30, 40])
s1

앞서 설명드린 것처럼 Series를 출력하게 되면

앞에 index 레이블이 붙게 됩니다.

 

기본적으로 0에서부터 시작합니다.

 

 

s2 = pd.Series([10, 20, 30, 40], index=["a", "b", "c", "d"])
s2

하지만 우리가 위와 같은 방법으로

직접 index 레이블을 지정할 수도 있습니다.

 

 

 

s2["b"]

s2[1]

우리는 이 index 레이블을 활용하여 원소에 접근을 할 수도 있고

Series를 호출할 수도 있습니다.

 

 

 


 

 

s2.loc["b"]
s2.iloc[1]

 

레이블이나 정수를 사용해 접근할 때 명확하기 위해서는

레이블의 경우 loc 속성, 정수의 경우 iloc 속성을 사용하는 것이 좋습니다.

 

 

 

왜 그래야 할까요?

 

 

 

s3 = pd.Series([1, 2, 3, 4])
s3

s3_slice = s3[2:]
s3_slice

먼저, 예를 들기 위해 's3'라는 변수를 만들고

슬라이싱을 해주었습니다.

 

* 슬라이싱은 [시작하고 싶은 부분 : 끝내고 싶은 부분 - 1] 으로 Series를

자를 수 있습니다.

 

 

 

s3_slice[0]

 

그리고 이 변수에 iloc, loc 가 아닌 방법으로 접근할 시

해당 변수의 index에는 0이 없으므로 에러가 발생하게 됩니다.

 

 

 

s3_slice.iloc[0]

s3_slice.loc[2]

하지만 이처럼 iloc와 loc를 사용하면 index에는 없는 정수더라도

올바르게 호출할 수 있습니다.

 

 

 

 

 

 

Dictionary 타입으로 Seires 만들기

 

dict = {"c": 10, "d": 20, "e": 30, "f": 40}
s4 = pd.Series(dict)
s4

 

파이썬에는 기본적으로 key와 value를 가지는

Dictionary (dict)라는 데이터 타입이 존재합니다.

 

dict는 {key : vlaue} 로 생성하며 여기서 key는 index 레이블로 사용됩니다.

 

 

s4 = pd.Series(dict, index = ["e", "c"])
s4

dict로 Series에 포함할 원소를 제어하고

index를 지정하여 명시적으로 순서를 결정할 수 있습니다.

 

 

 

 

 

 

스칼라로 Seires 초기화

 

s6 = pd.Series(100, ["a", "b", "c"])
s6

이처럼 모든 원소를 스칼라 값으로 설정시킬 수도 있습니다.

 

 

 

 

 

 

Series 이름
s7 = pd.Series([24, 54], index=["julia", "vicky"], name="age")
s7

 

Series는 name을 가질 수 있습니다.

 

 

 

 

 

 

Numpy
import numpy as np
np.exp(s)

마지막으로 Numpy 수치 계산을 위해 다양한 함수를 제공하며

행렬이나 일반적인 다차원 배열을 쉽게 처리할 수 있도록 지원하는

라이브러리입니다.

 

앞서 우리가 만들었던 Series 변수 's'에 

Numpy를 사용해보도록 하겠습니다.

 

사용 전, Numpy를 import를 통해 불러와주면 됩니다.

 

 

Comments