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

Python Pandas – iloc() 함수로 정수 위치 기반 DataFrame 행 선택하는 방법

Pandas에서 정수 위치(integer location)를 기준으로 DataFrame의 행을 선택하려면 iloc() 함수를 사용합니다. iloc은 인덱스 라벨이 아닌 0부터 시작하는 정수 위치를 기반으로 동작하므로, 선택하고자 하는 행의 위치 번호(인덱스 번호)를 지정하면 됩니다.

iloc()와 loc()의 차이

두 함수의 차이를 간단히 정리하면 다음과 같습니다.

  • loc[] : 라벨(label) 기반으로 행을 선택합니다.
  • iloc[] : 정수 위치(integer position) 기반으로 행을 선택합니다.

먼저 예제에 사용할 DataFrame을 생성해 보겠습니다.

dataFrame = pd.DataFrame([[10, 15], [20, 25], [30, 35]], index=['x', 'y', 'z'], columns=['a', 'b'])

위 DataFrame은 행 라벨로 'x', 'y', 'z'를 사용하고 있지만, 내부적으로는 각각 정수 위치 0, 1, 2에 해당합니다. 따라서 iloc[1]을 사용하면 두 번째 행, 즉 라벨이 'y'인 행이 선택됩니다.

예제 코드

다음은 lociloc을 함께 사용하여 행을 선택하는 전체 코드입니다.

import pandas as pd

# DataFrame 생성
dataFrame = pd.DataFrame([[10, 15], [20, 25], [30, 35]], index=['x', 'y', 'z'], columns=['a', 'b'])

# DataFrame 출력
print("DataFrame...\n", dataFrame)

# loc: 라벨을 지정하여 행 선택
print("\n라벨을 지정하여 행 선택...")
print(dataFrame.loc['z'])

# iloc: 정수 위치를 지정하여 행 선택
print("\n정수 위치를 지정하여 행 선택...")
print(dataFrame.iloc[1])

실행 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

DataFrame...
    a   b
x  10  15
y  20  25
z  30  35

라벨을 지정하여 행 선택...
a    30
b    35
Name: z, dtype: int64

정수 위치를 지정하여 행 선택...
a    20
b    25
Name: y, dtype: int64

정리

실행 결과를 보면 loc['z']는 라벨 'z'에 해당하는 세 번째 행을 반환하고, iloc[1]은 정수 위치 1, 즉 두 번째 행(라벨 'y')을 반환하는 것을 확인할 수 있습니다. 이처럼 iloc()은 행 라벨과 무관하게 항상 0부터 시작하는 위치 번호로 데이터에 접근하므로, 순번 기반으로 데이터를 다룰 때 매우 유용합니다.