데이터 분석에서 특정 위치의 인덱스 값을 활용해 요소에 접근하는 기능은 원하는 값만 정확하게 추출할 수 있게 해주는 핵심적인 역할을 합니다.
Pandas의 시리즈(Series) 데이터 구조는 리스트와 유사하게 인덱싱과 슬라이싱을 지원하기 때문에, 특정 인덱스의 값을 손쉽게 가져올 수 있습니다. 아래 예제를 통해 구체적인 사용 방법을 살펴보겠습니다.
예제 코드
import pandas as pd
my_data = [34, 56, 78, 90, 123, 45]
my_index = ['ab', 'mn', 'gh', 'kl', 'wq', 'az']
my_series = pd.Series(my_data, index=my_index)
print("시리즈는 다음 요소들을 포함합니다")
print(my_series)
print("세 번째 요소 (0 기반 인덱싱)")
print(my_series[2])
print("인덱스 2부터 마지막 요소까지")
print(my_series[2:])출력 결과
시리즈는 다음 요소들을 포함합니다 ab 34 mn 56 gh 78 kl 90 wq 123 az 45 dtype: int64 세 번째 요소 (0 기반 인덱싱) 78 인덱스 2부터 마지막 요소까지 gh 78 kl 90 wq 123 az 45 dtype: int64
코드 설명
필요한 라이브러리를 임포트한 뒤, 사용 편의성을 위해
pd라는 별칭(alias)을 지정합니다.데이터 값들의 리스트를 생성하고, 이후 pandas 라이브러리의
Series함수에 매개변수로 전달합니다.사용자가 직접 정의한 인덱스 값들('ab', 'mn', 'gh' 등)을 별도의 리스트로 저장한 뒤, 시리즈 생성 시 index 옵션으로 지정합니다.
Python의 인덱싱 기능을 활용해 시리즈에서 특정 위치의 요소에 접근합니다. 위 예제에서는
my_series[2]로 세 번째 요소인 78을 가져옵니다.슬라이싱 연산자 ':'를 사용하면 접근하거나 출력할 요소의 범위를 지정할 수 있습니다.
my_series[2:]는 인덱스 2부터 끝까지의 모든 요소를 반환합니다.결과는 print 함수를 통해 콘솔에 출력됩니다.
참고: 레이블 기반 접근 방식
사용자 지정 인덱스를 설정했다면 숫자 위치 대신 레이블로도 값에 접근할 수 있습니다. 예를 들어 my_series['gh']를 실행하면 78이 반환되며, .loc['mn':'kl']처럼 레이블 범위로 슬라이싱할 수도 있습니다. 반면 .iloc[]는 항상 정수 위치 기반으로 동작하므로, 상황에 맞게 두 방식을 구분해서 사용하는 것이 좋습니다.