Pandas - Series 슬라이싱(slicing)

안녕하세요 jay입니다.
오늘은 Pandas Series의 slicing하는 법에 대해 알아보도록 하겠습니다.

Series Slicing

우리가 데이터를 받아오면 꼭 모든 데이터를 사용하는 것은 아닙니다.
데이터의 어떤 부분은 분명 우리가 원하지 않은 데이터일 것이며,
slicing은 그 부분을 잘라내기 위한 기법입니다.

Series에서 slicing은 크게 index번호로 slicing하기, index 명을 사용해서 slicing하기
2가지 방법이 있습니다. 아래 예제들을 통해 확인해보도록 하겠습니다.

import pandas as pd
import numpy as np

name = np.array(["LEE","KIM","OH","JUNG","SHIN"])
score = np.array([40,80,60,90,50])
s1 = pd.Series(score2, index=name2)
print(s1)

"""
LEE     40
KIM     80
OH      60
JUNG    90
SHIN    50
dtype: int64
"""

# index 번호로 slicing

print(s1[2]) # 60(인덱스가 2인 값)
print(s1[2:]) # 인덱스 2부터 끝까지 key,value 출력

"""
OH      60
JUNG    90
SHIN    50
dtype: int64
"""
print(s1[::2]) # 인덱스 처음부터 끝까지 2간격으로 index, value출력

"""
LEE     40
OH      60
SHIN    50
dtype: int64
"""

# index 명을 사용해서 slicing

print(s1)

"""
LEE     40
KIM     80
OH      60
JUNG    90
SHIN    50
dtype: int64
"""

print(s1["LEE"]) # 40, 인덱스명을 통해서 value 출력

# 첫 인덱스명 ~ 끝인덱스명 포함해서 index, value출력
print(s1["LEE":"OH"])

"""
LEE    40
KIM    80
OH     60
dtype: int64
"""

print(s1[:"JUNG"])

"""
LEE     40
KIM     80
OH      60
JUNG    90
dtype: int64
"""

# -1 간격으로 SHIN부터 끝까지 출력 => 역순 출력
print(s1["SHIN"::-1])

"""
SHIN    50
JUNG    90
OH      60
KIM     80
LEE     40
dtype: int64
"""

index로 slicing을 할 때 :통해 범위를 지정하는 경우, 끝번호는 포함하지 않습니다.
하지만 index명으로 slicing을 할 때 :끝 index명은 포함이 됩니다.

댓글