Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python Pandas 시리즈(Series) 데이터 구조에서 데이터에 접근하는 다양한 방법

데이터 분석에서 특정 위치의 인덱스 값을 활용해 요소에 접근하는 기능은 원하는 값만 정확하게 추출할 수 있게 해주는 핵심적인 역할을 합니다.

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[]는 항상 정수 위치 기반으로 동작하므로, 상황에 맞게 두 방식을 구분해서 사용하는 것이 좋습니다.