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

Python Pandas에서 열 이름으로 열 인덱스를 구하는 방법

Python Pandas에서 열 이름(column name)을 통해 해당 열의 인덱스를 얻으려면 get_loc() 메서드를 사용하면 됩니다. 이 메서드는 DataFrame의 열 정보를 담고 있는 Index 객체에서 특정 라벨이 위치한 정수형 인덱스를 반환해 주므로, 열의 순번을 동적으로 확인할 때 매우 유용합니다.

처리 단계

  1. 2차원이며 크기 변경이 가능하고 다양한 타입의 데이터를 담을 수 있는 표 형태 데이터(DataFrame) df를 생성합니다.
  2. 입력 DataFrame df를 출력합니다.
  3. df.columns를 사용하여 DataFrame의 열 정보를 가져옵니다.
  4. 3단계에서 얻은 열 정보를 출력합니다.
  5. 찾고자 하는 열 이름을 변수 column_name에 저장합니다.
  6. get_loc() 메서드를 호출하여 column_name의 위치, 즉 인덱스를 구합니다.
  7. column_name의 인덱스를 출력합니다.

예제 코드

import pandas as pd

df = pd.DataFrame(
    {
        "x": [5, 2, 7, 0],
        "y": [4, 7, 5, 1],
        "z": [9, 3, 5, 1]
    }
)

print("입력 DataFrame:\n", df)
columns = df.columns
print("주어진 DataFrame의 열:", columns)

column_name = "z"
column_index = columns.get_loc(column_name)
print("열", column_name, "의 인덱스:", column_index)

column_name = "x"
column_index = columns.get_loc(column_name)
print("열", column_name, "의 인덱스:", column_index)

column_name = "y"
column_index = columns.get_loc(column_name)
print("열", column_name, "의 인덱스:", column_index)

실행 결과

입력 DataFrame:
   x  y  z
0  5  4  9
1  2  7  3
2  7  5  5
3  0  1  1

주어진 DataFrame의 열: Index(['x', 'y', 'z'], dtype='object')

열 z 의 인덱스: 2
열 x 의 인덱스: 0
열 y 의 인덱스: 1

대체 방법: 리스트 변환 후 index() 활용

get_loc() 외에도 열 목록을 일반 리스트로 변환한 뒤 파이썬 내장 함수 index()를 사용하는 방법도 있습니다.

column_index = list(df.columns).index("z")
print(column_index)  # 출력: 2

두 방식 모두 동일한 결과를 반환하지만, get_loc()은 존재하지 않는 열 이름을 조회할 경우 KeyError를 발생시키므로 필요에 따라 try-except 문으로 예외 처리를 해주는 것이 좋습니다.