반응형
s[:5]와 s[:'다']에서 범위의 동작이 다르게 보이는 이유는, 숫자 슬라이싱과 라벨(문자) 슬라이싱이 pandas에서 다르게 처리되기 때문입니다.
- 숫자 인덱스 슬라이싱 (s[:5]):
- pandas.Series에서 숫자로 슬라이싱을 할 때는 파이썬 기본 슬라이싱 규칙을 따릅니다. 즉, 끝 인덱스는 포함되지 않음.
- 예를 들어, s[:5]는 0부터 4까지의 항목을 반환합니다.
- 이 방식은 파이썬의 리스트나 배열에서 흔히 사용하는 슬라이싱 방식과 동일합니다.
s = pd.Series(list('가나다라마'))
s[:5]
# 결과:
# 0 가
# 1 나
# 2 다
# 3 라
# 4 마
# dtype: object
- 라벨(문자) 인덱스 슬라이싱 (s[:'다']):
- pandas.Series에서 라벨(문자)로 슬라이싱할 때는, 라벨 기반 슬라이싱 규칙이 적용됩니다. 이 경우 끝 값도 포함됩니다.
- 예를 들어, s[:'다']라고 하면 '다' 라벨까지 포함하여 반환합니다.
- pandas에서는 라벨을 이용한 슬라이싱 시, 명시한 끝 값(여기서는 '다')을 포함하는 것이 기본 동작입니다.
s = pd.Series(list('가나다라마'), index=list('가나다라마'))
s[:'다']
# 결과:
# 가 가
# 나 나
# 다 다
# dtype: object
차이점 정리:
- 숫자 인덱스 슬라이싱: 파이썬의 일반적인 슬라이싱 규칙을 따르며, 끝 인덱스는 포함되지 않음.
- 라벨(문자) 인덱스 슬라이싱: pandas의 라벨 기반 슬라이싱 규칙을 따르며, 끝 라벨이 포함됨.
이는 pandas에서 명확한 인덱스 값의 의미를 유지하기 위한 설계라고 할 수 있습니다.
반응형
'프로그래밍 > 파이썬(Python)' 카테고리의 다른 글
[Numpy] reshape() 매개변수, 튜플 차이 (1) | 2024.10.20 |
---|---|
파이썬(리스트 등)의 copy()와 Numpy의 copy() (0) | 2024.10.19 |
[Pandas] isna()와 isnull()의 차이 (0) | 2024.09.22 |
[Pandas] and와 & 차이 (0) | 2024.09.22 |
[Pandas] 대괄호([])를 2번 사용하는 이유(단일 열/2개 이상의 열) (0) | 2024.09.22 |