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

Python Pandas – 사용자 지정 인덱스로 시리즈의 여러 요소 검색하기

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 버전과의 호환성 면에서도 더 안전합니다.