Pandas Series 특징

반응형
    반응형

    Pandas에 대해서 알아볼까 합니다. Pandas는 데이터 다룰 때 많이 쓰고 있고 데이터 사이언스를 하는데 있어서 반드시 잘 다루어야 하는 모듈 중에 하나이고 기본중의 기본 모듈이기도 합니다. 

     

    사실 파이썬에서도 리스트,튜플,딕셔너리를 가지고 데이터를 다룰 수 있습니다. 파이썬의 특유의 직관성 때문에 이런 자료구조를 다루는 것만으로도 굉장히 편리합니다. 그런데 좀 더 효율적인 부분을 생각한다면 pandas가 파이썬에 기본으로 내장되어 있는 것보다는 더욱 효율적인 작업을 할 수 있습니다. 그렇다고 Pandas만 주구장창 쓰는 건 아니고 필요에 따라서 리스트도 쓸 때도 있고 pandas에 있는 자료구조도 쓸수 있습니다. 그저 더욱 편리하고 잘 다룰 수 있는 방법을 추구하는 것 뿐입니다.

     

    Pandas에는 두 종류의 자료구조가 있습니다. 바로 Series와 DataFrame입니다. Series 는 1차원 배열의 자료구조이고 DataFrame은 2차원 배열의 자료구조입니다. 그래서 이 두가지 자료구조를 잘 다루기만 한다면 데이터 사이언스에서 풍성하게 데이터 처리를 할 수 있습니다.

     

    이번 포스팅에서는 Series 특징을 한 번 알아보겠습니다.

     

    Series

    Series는 1차원 배열의 자료구조입니다. 그러면 파이썬에 내장되어 있는 리스트와 튜플도 1차원 배열의 자료구조니깐 굳이 Series를 써야하는지 의문이 들 수도 있습니다. 저도 실제적으로 써보면 Series를 많이 쓰는 것 같진 않습니다. 그렇다고 아예 안 쓰는 것도 아닙니다. 경험상으로 보면 Series여야만 되는 부분이 있는게 분명해서 Series를 잘 알아놓으면 아마 그래도 Series를 모르는것보다는 좋지 않을까 싶습니다. 

     

    예를 보면서 특징을 알아보도록 합시다.

    import numpy as np
    import pandas as pd
    s1 = pd.Series([1,2,3])
    s1

    s1이라는 이름으로 Sereis를 하나 만들었습니다. 그래서 출력을 해보았더니 리스트와는 다르게 나오는 것을 볼 수 있습니다. 리스트와 다르게 두 줄로 나오는데 맨앞의 0 1 2 는 인덱스를 의미하고 그 뒤에 1 2 3 은 자료를 의미합니다. 

    이렇듯 Series를 만들면 인덱스와 그에 매칭되는 자료를 한 눈에 볼 수 있습니다. 즉, 인덱스의 변환이 가능하다는 것을 의미합니다.

    파라미터를 봐도 index를 파라미터에 하나로 여기고 있습니다. 이렇게 인덱스를 정할 수 있으면 훨씬 자료정리하기가 좋기 때문에 Series를 안 쓸래야 안 쓸 수가 없습니다.

     

    파라미터에 있는것대로 name까지 추가해보겠습니다.

    먼저 data와 index를 함께 명시를 해보겠습니다. 

    • data, index
    s2 = pd.Series([1,2,3],[100,200,300])
    s2

    index를 [100,200,300]으로 설정하였습니다. 순서를 잘 해야하는데 data를 먼저 쓰고 index를 그 다음에 써야합니다.

     

    • data,index,dtype
    s3 = pd.Series(np.arange(5),np.arange(100,105),dtype=np.int32))
    s3

    dtype이 int32로 바뀌어서 나오는 것을 볼 수 있습니다. np.arange(5)도 1차원 자료구조이기 때문에 Series의 자료로써 쓸수 있습니다. 보시는 것처럼 s3이 오류없이 나옵니다.

    • data,index,dtype,name

    이 데이터의 고유 이름을 붙일 수 있는데 데이터가 많아지면 정리를 위해 쓰기도 합니다.

    s4 = pd.Series(np.arange(5),np.arnage(100,105),dtype=np.int32,name='5_values')
    s4
    

    밑에 Name란이 더 생겨서 이 데이터의 이름이 무엇인지 알려줍니다.

    이렇듯 리스트와는 다르게 인덱스와 이름을 정해주는 기능이 있어서 자료정리하는데 있어서 훨씬 편리합니다.

     

    Series 인덱스 다루기

    인덱스를 다뤄 보겠습니다. 방법은 리스트와 동일합니다.

     

    • 인덱스를 통한 데이터 접근
    s5= pd.Series(np.arange(5),np.arange(100,105),dtype=np.int32,name='5_values')
    s5[100]

    인덱스를 통한 접근은 리스트와 동일합니다. 

     

    • 데이터 업데이트
    s5[105]= 10
    s5

    큰 어려움 없이 추가됩니다. 없는 인덱싱 넘버에 지정하면 되고 만약 이미 값이 있는 곳에 다시 지정을 하면 값이 업데이트 됩니다.

    s5[100]=20
    s5

     

    Series index,value 분리

    인덱스 재사용 방법을 보기 전에 Series 분리방법을 알려드릴까 합니다.(필요해요!!!)

    Series는 마치 딕셔너리와 같이 index와 values가 분리가 됩니다. 

    s5.index

    s5.values


    • 인덱스 재사용

    기존에 있던 인덱스를 재사용할 수 있습니다.

     

    Series는 index와 value가 분리되기 때문에 재사용이 가능합니다.

    s6= pd.Series(np.arange(6),s5.index)
    s6

    반대로 values 값으로도 index처리가 가능합니다.

    s7= pd.Series(np.arange(6),s6.values)
    s7

     

    Series의 특징을 살펴보았습니다. Series는 파이썬의 리스트 같으면서도 딕셔너리 같은 구조라는 걸 알고 가시면 될 것 같습니다. 이것으로 이번 포스팅을 마치겠습니다.

    '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.16

    댓글

    Designed by JB FACTORY

    ....