Pandas의 Series는 생성 시 인덱스를 따로 지정하지 않으면 0부터 시작하는 정수형 기본 인덱스가 자동으로 부여됩니다. 이 경우 일반적인 인덱싱 방식으로 요소에 접근할 수 있습니다. 반면, 사용자 정의 인덱스를 지정했다면 문자열 등의 커스텀 인덱스 값을 그대로 사용해 요소에 접근하고 결과를 콘솔에 출력할 수 있습니다.
아래 예제를 통해 구체적으로 살펴보겠습니다.
예제 코드
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("The series contains following elements")
print(my_series)
print("Accessing elements using customized index")
print(my_series['mn'])
print("Accessing elements using customized index")
print(my_series['az'])출력 결과
The series contains following elements ab 34 mn 56 gh 78 kl 90 wq 123 az 45 dtype: int64 Accessing elements using customized index 56 Accessing elements using customized index 45
코드 설명
필요한 라이브러리를 임포트하고, 사용 편의성을 위해 별칭(alias)을 지정합니다.
데이터 값들이 담긴 리스트를 생성하며, 이 리스트는 이후 pandas 라이브러리의 'Series' 함수에 매개변수로 전달됩니다.
사용자 정의 인덱스 값들을 별도의 리스트에 저장합니다.
Series 객체를 생성하면서 데이터 리스트와 인덱스 리스트를 각각 매개변수로 전달합니다.
생성된 시리즈를 콘솔에 출력합니다.
인덱스 값이 사용자 정의되어 있으므로
series_name['index_name']형태로 시리즈 내부의 값에 접근할 수 있습니다.접근한 값을 콘솔에 출력합니다.
참고: loc와 iloc 활용
사용자 정의 인덱스가 있는 시리즈에서는 .loc[]를 사용하면 라벨 기반으로 명확하게 접근할 수 있고, 위치 기반 접근이 필요하다면 .iloc[]를 사용하는 것이 좋습니다. 예를 들어 my_series.loc['mn']은 라벨 'mn'에 해당하는 값 56을 반환하며, my_series.iloc[1] 역시 두 번째 위치의 값 56을 반환합니다. 이렇게 구분해서 사용하면 인덱스가 문자열이든 정수든 혼동 없이 안전하게 데이터에 접근할 수 있습니다.