[Pandas] Series 기본 사용 및 기능

원준·2023년 5월 22일

데이터 분석 - Python

목록 보기
7/12

Series란?

  • Pandas에서 사용되는 레이블(Label)
  • 어떤 데이터 타입이든 보유할 수 있게 만든 1차원 배열을 말한다.

1. 기본 사용 방법

  • numpy indexing과 유사하게 동작함.
  • Key | Value의 형태로 나타내는 것을 말한다.
obj = pd.Series([0,1,2,3,4,5,6,7], 
		index = ['a','b','c','d','e','f','g','h'], dtype = 'int64')

# 결과
#a    0
#b    1
#c    2
#d    3
#e    4
#f    5
#g    6
#h    7

2. 인덱싱, 슬라이싱 가능

  • numpy를 사용하는 Pandas이기때문에 사용 가능

    # 인덱싱
    obj['b'], obj[3]
    
    # 결과
    # (1, 3)
    
    # 슬라이싱
    obj[1: 3], obj[obj < 3]
    
    # 결과
    #(b    1
    #c    2
    #dtype: int64,
    #a    0
    #b    1
    #c    2
    #dtype: int64)

3. 멀티 인덱스 접근 가능

  • multi index 접근

  • 슬라이싱은 특정 범위를 가져오는 것이지만, 특정 인덱스에 대한 여러개를 들고 올 수 있다.

    #multi index
    obj[[1, 3 , 5]]
    
    # 결과
    #b    1
    #d    3
    #f    5
    #dtype: int64

4. 특정 범위 슬라이싱 값 수정 가능

  • 기존 list에서는 값 변경이 안되며, numpy는 가능하기에 특정 key를 기준으로 값을 변경할 수 있다.

  • 멀티 인덱싱으로 수정이 가능하다.

    # 범위 슬라이싱 수정
    obj['d' : 'e'] = 100
    
    # 결과
    #a      0
    #b      1
    #c      2
    #d    100
    #e    100
    #f      5
    #g      6
    #h      7
    
    # 멀티 인덱싱
    obj[['d', 'e']] = 50
    
    # 결과
    #a     0
    #b     1
    #c     2
    #d    50
    #e    50
    #f     5
    #g     6
    #h     7
    #dtype: int64

5. 서로 연산이 가능하다.

  • 각각의 Key와 동일한 Series끼리 연산이 가능하다.

    s1 = pd.Series([1,2,3,4], index['a', 'b', 'c', 'd'])
    s2 = pd.Series([10,20,30,40], index['a', 'b', 'c', 'd'])
    # 연산 가능
    s1 + s2
    
    # 결과
    #a    11
    #b    22
    #c    33
    #d    44
    #dtype: int64
  • 각각의 다른 Key를 가지고 있다면 포함이 되지 않는 값에 NaN을 넣어 계산한다.

    s1 = pd.Series([1,2,3,4], index=['a', 'b', 'c', 'd'])
    s2 = pd.Series([10, 20, 30, 40], index=['b', 'c', 'd','e'])
    s1+s2 # SQL의 Outer join과 비슷한 방식
    
    # 결과
    #a     NaN # s2에 'a' key가 없기에 계산을 할 수 없으니 NaN으로 계산된다.
    #b    12.0
    #c    23.0
    #d    34.0
    #e     NaN
    #dtype: float64
    
    
    # NaN 처리
    s1.add(s2, fill_value = 0) #연산이 되지 않는 곳에 0을 넣어 계산
    		# 서로 맞지 않는 Key끼리 계산할때 임의의 값 0을 넣어서 계산한다.
         # 또한 내가 임의로 값을 넣는 것도 가능하다.
    # 결과
    #a     1.0
    #b    12.0
    #c    23.0
    #d    34.0
    #e    40.0
    #dtype: float64

6. unique()

  • 중복되는 값을 제거하고 유일한 값만 담고 numpy형태로 반환한다.
    obj.unique()
  • 결과 예시)
profile
공부해보자

0개의 댓글