Pandas 라이브러리의 시리즈(Series)는 인덱스 값을 사용자가 직접 지정할 수 있습니다. 이렇게 만든 사용자 지정 인덱스는 series_name['index_value'] 형태로 특정 데이터에 접근할 때 활용됩니다.
시리즈에 전달된 'index_value'는 원본 시리즈의 인덱스와 비교되며, 일치하는 항목이 발견되면 해당 데이터가 콘솔에 출력됩니다. 그렇다면 여러 개의 요소를 한 번에 가져오려면 어떻게 해야 할까요? 아래 예제를 통해 살펴보겠습니다.
예제
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("사용자 지정 인덱스로 여러 요소에 접근하기")
print(my_series[['mn', 'az', 'wq', 'ab']])
출력 결과
시리즈에는 다음과 같은 요소들이 들어 있습니다 ab 34 mn 56 gh 78 kl 90 wq 123 az 45 dtype: int64 사용자 지정 인덱스로 여러 요소에 접근하기 mn 56 az 45 wq 123 ab 34 dtype: int64
코드 설명
필요한 라이브러리를 임포트하고, 사용 편의를 위해 별칭(pd)을 붙입니다.
데이터 값들로 이루어진 리스트를 생성한 뒤, pandas 라이브러리의 Series 함수에 매개변수로 전달합니다.
사용자 지정 인덱스 값들도 별도의 리스트에 저장해 둡니다.
데이터와 인덱스 리스트를 매개변수로 넘겨 시리즈를 생성합니다.
생성된 시리즈를 콘솔에 출력합니다.
인덱스가 사용자 지정되었으므로 series_name['index_name'] 형태로 시리즈의 값에 접근할 수 있습니다.
여러 인덱스 값을 동시에 조회하려면 인덱스 이름들을 먼저 리스트로 묶은 후, 시리즈 인덱싱에 그 리스트를 전달합니다.
주의 − 코드에 대괄호가 두 겹([[ )으로 쓰인 부분을 눈여겨보세요. 바깥쪽 대괄호는 시리즈 인덱싱 연산자이고, 안쪽 대괄호는 조회할 인덱스 이름들의 리스트를 나타냅니다.
결과는 마지막에 콘솔에 출력됩니다.
참고: .loc 접근자 활용하기
최신 pandas 버전에서는 my_series.loc[['mn', 'az', 'wq', 'ab']]처럼 .loc 접근자를 사용하는 방식이 권장됩니다. .loc은 레이블(인덱스 이름) 기반 접근임을 명확히 드러내므로 코드 가독성이 좋아지고, 슬라이싱 시 종단점까지 포함한다는 규칙도 직관적입니다. 또한 향후 pandas 버전과의 호환성 면에서도 더 안전합니다.