[Pandas] Series 간단 분석

반응형
    반응형

    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

    댓글

    Designed by JB FACTORY

    ....