-
[Python] pandas 슬라이싱과 인덱싱언어/파이썬 & 장고 2022. 8. 22. 00:24
import pandas as pd data = pd.Series([0.25, 0.5, 0.75, 1.0], index=['a', 'b', 'c', 'd']) # 명시적인 인덱스로 슬라이싱 print(data['a':'c']) # a 0.25 # b 0.50 # c 0.75 # dtype: float64 # 암묵적 정수 인덱스로 슬라이싱 print(data[0:2]) # a 0.25 # b 0.50 # dtype: float64
pandas에서 슬라이싱이 많이 혼동을 일으킬 수 있습니다. 명시적인 정수 인덱스를 가지고 있다면 data[1]과 같은 인덱싱 연산은 명시적인 인덱스를 사용하겠지만, data[1:3] 같은 슬라이싱 연산은 파이썬 스타일의 암묵적 인덱스를 사용할 것입니다.
import pandas as pd data = pd.Series(['a', 'b', 'c'], index=[1, 3, 5]) print(data) # 1 a # 3 b # 5 c # dtype: object # 인덱싱할 때, 명시적인 인덱스 사용 print(data[1]) # a # 슬라이싱할 때, 암묵적인 인덱스 사용 print(data[1:3]) # 3 b # 5 c # dtype: object
정수 인덱스를 사용하는 경우, 위와 같은 혼선이 발생할 수도 있기 때문에 pandas는 특정 인덱싱 방식을 명시적으로 드러내는 몇 가지 특별한 indexer 속성을 제공합니다. 이는 함수 메서드가 아니라 Series의 데이터에 대한 특정 슬라이싱 인터페이스를 드러내는 속성입니다.
loc
print(data.loc[1]) # a print(data.loc[1:3]) # 1 a # 3 b # dtype: object
loc 속성은 언제나 명시적인 인덱스를 참조하는 인덱싱과 슬라이싱을 가능하게 합니다.
iloc
print(data.iloc[1]) # b print(data.iloc[1:3]) # 3 b # 5 c # dtype: object
iloc 속성은 인덱싱과 슬라이싱에서 언제나 암묵적인 파이썬 스타일의 인덱스를 참조하게 해준다.