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

Pandas DataFrame에서 두 인덱스 값 사이의 행 선택하기

Pandas에서는 슬라이싱(slicing)을 활용하여 두 인덱스 값 사이에 있는 DataFrame의 행을 손쉽게 선택할 수 있습니다. 이 글에서는 예제를 통해 그 방법을 단계별로 살펴보겠습니다.

처리 단계

  • 2차원이며 크기 변경이 가능하고 이질적인 데이터형을 가질 수 있는 표 형태 데이터인 df DataFrame을 생성합니다.
  • 입력 DataFrame인 df를 출력합니다.
  • 인덱스의 하한(lower limit) 값을 저장할 변수를 초기화합니다.
  • 인덱스의 상한(upper limit) 값을 저장할 변수를 초기화합니다.
  • df[index_lower_limit:index_upper_limit] 구문을 사용하여 해당 인덱스 범위에 포함된 행만 출력합니다.

예제 코드

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)

index_lower_limit = 1
index_upper_limit = 3

print("두 인덱스 값 사이의 DataFrame:\n",
      df[index_lower_limit:index_upper_limit])

출력 결과

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

두 인덱스 값 사이의 DataFrame:
   x  y  z
1  2  7  3
2  7  5  5

참고 사항

위 예제에서 볼 수 있듯이 df[1:3]은 인덱스 1부터 2까지의 행을 반환하며, 상한값인 인덱스 3에 해당하는 행은 포함되지 않습니다. 이는 Python 슬라이싱의 일반적인 규칙과 동일하게, 시작 지점은 포함하고 끝 지점은 제외하는 방식으로 동작하기 때문입니다.

또한 위치 기반 슬라이싱 외에도 .loc[](레이블 기반) 또는 .iloc[](정수 위치 기반) 메서드를 사용하면 더욱 명확하게 특정 범위의 행을 선택할 수 있습니다.