Python Pandas에서 열 이름(column name)을 통해 해당 열의 인덱스를 얻으려면 get_loc() 메서드를 사용하면 됩니다. 이 메서드는 DataFrame의 열 정보를 담고 있는 Index 객체에서 특정 라벨이 위치한 정수형 인덱스를 반환해 주므로, 열의 순번을 동적으로 확인할 때 매우 유용합니다.
처리 단계
- 2차원이며 크기 변경이 가능하고 다양한 타입의 데이터를 담을 수 있는 표 형태 데이터(DataFrame) df를 생성합니다.
- 입력 DataFrame df를 출력합니다.
- df.columns를 사용하여 DataFrame의 열 정보를 가져옵니다.
- 3단계에서 얻은 열 정보를 출력합니다.
- 찾고자 하는 열 이름을 변수 column_name에 저장합니다.
- get_loc() 메서드를 호출하여 column_name의 위치, 즉 인덱스를 구합니다.
- 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 문으로 예외 처리를 해주는 것이 좋습니다.