ABOUT ME

Today
Yesterday
Total
  • [python] 파이썬을 이용한 빅데이터 실습 2 조건 색인
    Languages/python 2021. 9. 12. 21:32
    반응형

     

     

     

     

     

     

     

    인덱스를 활용하여 내가 원하는 데이터 선택하기

    조건 색인(불리언 색인)을 활용하여 내가 원하는 데이터 선택하기1

     

     

    조건색인

    불리언 색인 혹은 Fancy 색인

     

     

     

     

     

    indexing

     

    Series indexing

    Series 전체 데이터 중에서 내가 원하는 데이터만 선택해 오는 방법임

     

     

     

    1) 특정 인덱스 선택하기

    숫자 인덱스와 인덱스 라벨 모두 가능

     

    sample = pd.Series([85, 90, 75, 55, 45, 90, 95, 85, 90, 100],
                    index = ['a','b','c','d','e','f','g','h','i','j'])
    sample
    
    a     85
    b     90
    c     75
    d     55
    e     45
    f     90
    g     95
    h     85
    i     90
    j    100
    dtype: int64

     

    01. 숫자 인덱스인 경우

     

    sample[2]
    
    75

     

    인덱스 2 는

     0,1,2 >> 2

     

    02.문자 인덱스인 경우

     

    sample['c']
    
    75

     

    2)여러 인덱스를 동시에 선택하기

     

     

    주의점

    여러 개 값을 한 번에 전달하는 경우

    항상 리스트(List,[])로 담아서 전달해야 한다.

    sample[['c','d','e','f','g']]
    
    c    75
    d    55
    e    45
    f    90
    g    95
    dtype: int64

     

    sample[[2,4,6]]
    
    c    75
    e    45
    g    95
    dtype: int64

     

     

     

     

     

     

     

    인덱스 슬라이싱

     

    Series가 있을 때 색인하는 방법

     

    슬라이싱으로 색인하는 방법

     

    0,1,2,3

    앞에 있는 4개의 항목을 선택하고 싶다면?

     

    리스트 길이가 커지면 불편해져 슬라이싱 개념을 사용할 수 있다

     

    슬라이싱으로 색인하는 방법

     

    범위를 지정해주고 그 범위에 해당하는 데이터를 선택하는 방법

     

     

     

    series[<start idx>:<end idx>]

     

     

    문자 인덱스 경우

         엔드 인덱스 포함

     

    숫자 인덱스 경우

         엔드 인덱스 미포함

     

    sample[0:5]
    
    a    85
    b    90
    c    75
    d    55
    e    45
    dtype: int64
    
    sample[:5]
    
    a    85
    b    90
    c    75
    d    55
    e    45
    dtype: int64
    
    sample['a':'e']
    
    a    85
    b    90
    c    75
    d    55
    e    45
    dtype: int64

     

     

    스타트 인덱스를 생락햐면

       무조건 처음부터 슬라이싱을 하는 것

    엔드 인덱스를 생략하면

       무조건 데이터 끝까지 선택하겠다는 것

     

     

     

    뒤에서부터 선택하는 마이너스 인덱스 또한 사용가능하다

     

    sample[-3:]
    
    h     85
    i     90
    j    100
    dtype: int64

     

     

     

     

     

     

     

     

     

     

    조건색인(불리언 색인)

     

     

    불리언 인덱스에 있는 true,false의 개수와 불리언 인덱스를 사용할 

    series 데이터 항목의 개수가 동일해야 사용할 수 있다

     

     

    boolean_idx = [True, False, False, False, False,
                  True, True, True, True, True]
    sample[boolean_idx]
    a     85
    f     90
    g     95
    h     85
    i     90
    j    100
    dtype: int64

     

     

    90보다 큰 값 구하기

     

    sample >= 90
    
    a    False
    b     True
    c    False
    d    False
    e    False
    f     True
    g     True
    h    False
    i     True
    j     True
    dtype: bool

     

    sample 데이터의 평균값보다 큰 데이터만 선택

     

    sample.mean()
    
    81.0
    
    sample > sample.mean()
    
    a     True
    b     True
    c    False
    d    False
    e    False
    f     True
    g     True
    h     True
    i     True
    j     True
    dtype: bool
    
    boolean_idx  =sample >  sample.mean()
    
    sample[boolean_idx]
    
    a     85
    b     90
    f     90
    g     95
    h     85
    i     90
    j    100
    dtype: int64

     

    sample의 값이 50과 80사이의 데이터만 선택

     

    cond_50_80 = (sample >=50) & (sample <=80)
    
    sample[cond_50_80]
    
    c    75
    d    55
    dtype: int64
    반응형

    댓글

Designed by Tistory.