머신러닝 파이썬

판다스(Pandas)에서 iloc()과 loc()의 차이점 이해하기

fast learner 2023. 4. 20. 09:02

안녕하세요 여러분, 오늘 우리는 판다스(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() 함수의 차이점을 이해할 수 있었기를 바랍니다. 판다스를 사용하여 데이터를 처리할 때 이러한 차이점을 명심하고, 상황에 맞게 적절한 함수를 사용하여 효율적인 데이터 처리를 수행하세요. 다음 글에서 뵙겠습니다!

728x90
반응형