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[](정수 위치 기반) 메서드를 사용하면 더욱 명확하게 특정 범위의 행을 선택할 수 있습니다.