[Pandas] Series 간단 분석
- Python/Pandas
- 2020. 6. 16.
Series의 정보를 추출하는 간단한 함수를 알려드릴까 합니다.
다음과 같은 함수를 쓰면 Series의 형태를 파악할 수 있습니다. 물론 더 많이 있지만 주요한 것만 소개하겠습니다.
- size : Series의 원소 개수를 알려줌
- shape : 튜플형태로 shape를 알려줌
- unique : 유일한 값만 ndarray로 반환해서 출력
- count : NaN을 제외한 원소 개수를 알려줌
- mean : NaN을 제외한 평균(numpy와 다르게 계산가능)
- value_counts : NaN을 제외하고 각 값들의 빈도를 출력
- head : 상위 n개 출력 기본값은 5개
- tail : 하위 n개 출력 기본값은 5개
import numpy as np
import pandas as pd
numpy와 pandas를 임포트하고 시작합니다.
각 함수를 썼을때 어떤 식으로 반환되는지 살펴봅시다.
먼저 Series 하나를 생성하겠습니다.
s = pd.Series([1,1,2,2.3,2.4,3.5,5,5,8,np.NaN])
s
이전 포스팅에서 Series는 리스트와 딕셔너리의 성질을 가지고 있다고 했습니다. 그래서 사실상 리스트를 다룰 때 쓰던 함수가 Series 되기도 합니다. 현재 글에서는 겹치는 함수에 대해서는 생략하겠습니다.
size
s.size
s의 인덱스를 보더라도 10개의 원소가 series안에 있다는 것을 알 수 있습니다.
shape
s.shape
unique()
s.unique()
보시는 바와 같이 중복된 값은 생략되어서 파이썬의 내장되어있는 set과 비슷한 역할을 하는 것을 알 수 있습니다.
형태는 ndarray로 변환됩니다.
count()
s.count()
NaN의 값을 뺀 나머지 값을 반환합니다. s에는 NaN이 하나 있으니 10이 아니라 9로 출력됩니다.
mean()
ndarray에서도 mean이 있고 Series에서도 mean이 있습니다. 차이점은 NaN 처리를 하느냐인데 ndarray는 NaN처리를 하지 못하고 Series에서는 NaN처리를 할 수 있습니다.
a= np.array([1,2,3,4,np.NaN])
a.mean()
b = Series(a)
b.mean()
ndarray에서 mean을 구할 수 없다면 Series로 변환하고 mean을 구하면 NaN처리를 따로 하지 않아도 구할 수 있습니다.
value_counts()
각 값의 빈도를 알 수 있습니다.
s.value_counts()
pandas는 인덱스 변경이 가능하므로 알고 싶은 데이터를 골라서 확인하고 싶을 때 인덱스를 많이 활용합니다. 이런 성질을 이용해 value_counts()도 인덱스를 입력해서 원하는 값의 빈도수를 체크할 수 있습니다.
s[[1,3,5,7,9]].value_count()
인덱스에 대응되는 value 값에 따라 빈도수를 출력할 수 있습니다.
head()
s.head(n=3)
tail()
아마 pandas를 다루면서 제일 많이 쓰게 되는 함수가 아닐까 싶습니다. 코딩을 하게 되면 Series를 생성하기보다는 주로 어디선가 데이터를 가져올 것이기 때문에 데이터가 얼마나 큰지 잘 모릅니다. 그렇다고 확인을 위해 데이터 전체를 출력하면 시간이 많이 걸립니다. 이런 경우 tail()을 쓰면 데이터가 잘 왔는지 index가 얼마나 있고 어떤 형태로 자료가 이루어 있는지를 볼 수 있어서 아주 유용합니다.
s.tail()
이상으로 포스팅을 마치겠습니다.
'Python > Pandas' 카테고리의 다른 글
[Pandas]Series 슬라이싱 (0) | 2020.07.01 |
---|---|
[Pandas]Series drop, dropna (0) | 2020.06.28 |
Series Boolean Select (0) | 2020.06.24 |
Series 연산 (0) | 2020.06.20 |
Pandas Series 특징 (0) | 2020.06.09 |