판다스(Pandas)에서 iloc()과 loc()의 차이점 이해하기
안녕하세요 여러분, 오늘 우리는 판다스(Pandas) 라이브러리에서 iloc()과 loc() 두 함수의 차이점에 대해 알아볼 것입니다. 먼저, 아래 코드를 통해 데이터를 준비해봅시다.
import pandas as pd
from sklearn.datasets import load_iris
iris_data = load_iris()
iris_df = pd.DataFrame(data=iris_data.data, columns=iris_data.feature_names)
위 코드에서는 사이킷런의 load_iris() 함수를 사용하여 아이리스 데이터셋을 불러온 후, 이를 판다스 데이터 프레임으로 변환했습니다. 이제 우리는 이 데이터 프레임에서 iloc()과 loc()을 사용하여 데이터를 선택할 수 있습니다.
print(iris_df.iloc[0:4])
print(iris_df.loc[0:4])
결과:
iris.iloc[0:4]
sepal length (cm) sepal width (cm) petal length (cm) petal width (cm)
0 5.1 3.5 1.4 0.2
1 4.9 3.0 1.4 0.2
2 4.7 3.2 1.3 0.2
3 4.6 3.1 1.5 0.2
iris.loc[0:4]
sepal length (cm) sepal width (cm) petal length (cm) petal width (cm)
0 5.1 3.5 1.4 0.2
1 4.9 3.0 1.4 0.2
2 4.7 3.2 1.3 0.2
3 4.6 3.1 1.5 0.2
4 5.0 3.6 1.4 0.2
먼저 iloc() 함수를 살펴봅시다. iloc()는 인덱스 기반 위치를 사용하여 데이터를 선택합니다. 정수 인덱스를 사용하여 행과 열을 선택할 수 있습니다. 위 코드에서 iris_df.iloc[0:4]는 인덱스 0에서 3까지의 행을 선택합니다. 이때, 인덱스 4는 포함되지 않습니다.
다음으로 loc() 함수를 살펴보겠습니다. loc()은 레이블 기반 위치를 사용하여 데이터를 선택합니다. 행과 열의 레이블을 사용하여 선택할 수 있습니다. 위 코드에서 iris_df.loc[0:4]는 인덱스 0에서 4까지의 행을 선택합니다. 이때, 인덱스 4가 포함됩니다.
요약하면, iloc()와 loc()의 주요 차이점은 iloc()가 인덱스 기반 위치를 사용하고, loc()가 레이블 기반 위치를 사용한다는 것입니다. 또한 iloc()에서 지정된 범위의 끝 값은 포함되지 않지만, loc()에서는 포함됩니다.
이 글을 통해 판다스에서 iloc()과 loc() 함수의 차이점을 이해할 수 있었기를 바랍니다. 판다스를 사용하여 데이터를 처리할 때 이러한 차이점을 명심하고, 상황에 맞게 적절한 함수를 사용하여 효율적인 데이터 처리를 수행하세요. 다음 글에서 뵙겠습니다!