Pandas (1) - Series

Series

  • pandas
    - Series : 1차원 배열, Vector
    - DataFrame : 2차원 배열, Matrix

  • Series
    - Series : 1차원 배열, Vector (안에 담긴 모든 data의 type이 동일함)
    - dtype을 지정해주지 않으면 가장 큰 용량의 dtype으로 맞춰서 지정 (string은 object형)
    - index, values, dtype
    - index는 0부터 시작됨, 하지만 명시적으로 지정할 수도 있음

    Ex. 선언

    ```
    import numpy as np
    import pandas as pd
    from pandas import Series, DataFrame
    # -------------------------------------------
    ser = Series([1, 2, 3, 4, 5])
    ser
    #
    0    1
    1    2
    2    3
    3    4
    4    5
    dtype : int64
    ```    

    Ex. dtype 확인

    ```
    import numpy as np
    import pandas as pd
    from pandas import Series, DataFrame
    # -------------------------------------------
    ser = Series([1, '2', 3.0, '네번째', 5])
    ser[0]     # 1
    ser[3]     # 네번째
    ser.dtype  # object ; 가장 용량이 큰 type으로 설정
    ```        

    Ex. index, values, dtype

    ```
    ser1 = Series(np.random.randint(10, 20, 5))
    ser1.index     # RangeIndex(start=0, stop=5, step=1)
    ser1.values    # [12 12 15 15 16]
    ser1.dtype     # int32
    ```            

    Ex. index를 명시적으로 지정할 수 있다

    ```
    ser1 = Series(np.random.randint(10, 20, 5), index = list('abcde'))
    ser1.index     # Index(['a', 'b', 'c', 'd', 'e'], dtype='object')
    ser1.values    # [19 19 14 17 18]
    ser1.dtype     # int32
    ser1.shape     # (5,)
    ```                

  • Series 값 조회하기
    - indexing / slicing
    - 숫자 사용 : 마지막 숫자 index 미포함
    - 라벨 사용 : 마지막 라벨 포함

    Ex.

    ```
    ser1 = Series(np.random.randint(10, 20, 5), index = list('abcde'))  # [19 19 14 17 18]
    ser1[0]			# 19
    ser1['a'] 		# 19
    ser1[1:4]	    # 19 14 17
    ser1['b':'d']   # 19 14 17
    ```         

  • Series 간 연산
    - NaN : 결측치 데이터 (누락데이터) .. float64

    Ex.

    ```
    ser1 = Series(np.random.randint(10, 20, 5), index = list('abcde'))  # [19 19 14 17 18]
    ser1_1 = ser1[::2]  # step 2
    # ------- ser1 -------
    a    19
    b    19
    c    14
    d    17
    e    18
    dtype : int32
    # ------- ser1_1 -------
    a    19
    c    14
    e    18
    dtype : int32
    # ------- 연산 -------
    resSer = ser1 + ser1_1
    resSer
    a    38.0
    b    NaN
    c    28.0
    d    NaN
    e    36.0
    dtype : float64
    ```            

  • 누락데이터 조회
    - isnull(), inna() : NaN 값이면 True
    - notnull() : NaN 값이 아니면 True

    Ex.

    ```
    # ------- isnull -------
    resSer.isnull()
    a    False
    b    True
    c    False
    d    True
    e    False
    dtype : bool
    # ------- notnull -------
    resSer.notnull()
    a    True
    b    False
    c    True
    d    False
    e    True
    dtype : bool
    # ------------------------
    resSer.isnull().sum()  # 2
    ```         

좋은 웹페이지 즐겨찾기