Data Scientist Dairy

pandas iloc vs loc 차이점 완벽 정리 🚀 본문

IT Cert. Study/빅데이터 분석 기사

pandas iloc vs loc 차이점 완벽 정리 🚀

ITBadgeCollector 2024. 12. 1. 22:37

데이터 분석에 있어 pandas는 필수적인 도구입니다. 특히 데이터프레임에서 데이터를 조회하거나 슬라이싱할 때 iloc과 loc 메서드를 많이 사용하게 되는데요. 처음 사용하는 분들에게는 이 둘의 차이가 헷갈릴 수 있습니다.

이번 포스팅에서는 iloc과 loc의 차이를 명확히 정리하고, 각각의 사용법을 예제로 설명해드리겠습니다. 🙌


🟢 iloc - 위치 기반 인덱싱

iloc은 데이터프레임의 행과 열의 위치를 기반으로 데이터를 선택합니다.
즉, 0부터 시작하는 숫자 인덱스를 사용하여 데이터를 조회합니다.

iloc 문법

코드 복사
data.iloc[행_인덱스, 열_인덱스]

특징

숫자 인덱스 위치를 기준으로 데이터를 조회합니다.
슬라이싱에서 끝값은 포함되지 않음 (Python 기본 슬라이싱 규칙).

예제

코드 복사
import pandas as pd

 데이터프레임 생성
data = pd.DataFrame({
    'A': [1, 2, 3],
    'B': [4, 5, 6],
    'C': [7, 8, 9]
})



# 첫 번째 행, 두 번째 열의 값 선택
print(data.iloc[0, 1])  # 결과: 4

# 첫 번째와 두 번째 행 선택
print(data.iloc[0:2, :])
# 결과:
#    A  B  C
# 0  1  4  7
# 1  2  5  8

🟡 loc - 라벨 기반 인덱싱

loc은 데이터프레임의 행과 열의 이름(라벨)을 기준으로 데이터를 선택합니다.
라벨을 기준으로 조회하기 때문에 데이터프레임의 인덱스 이름과 컬럼 이름을 정확히 지정해야 합니다.

loc 문법

코드 복사
data.loc[행_라벨, 열_라벨]

특징
라벨을 기준으로 데이터를 조회합니다.
슬라이싱에서 끝값이 포함됨.

예제

코드 복사
# 행 라벨과 열 이름을 사용하여 값 선택
print(data.loc[0, 'B'])  # 결과: 4

# 첫 번째와 두 번째 행 선택
print(data.loc[0:1, :])
# 결과:
#    A  B  C
# 0  1  4  7
# 1  2  5  8

🔵 iloc vs loc 비교표

특징 iloc loc
기준 정수 위치 기반 라벨 이름 기반
슬라이싱 끝값 끝값 미포함 끝값 포함
인덱스 타입 정수형만 가능 라벨 이름 (정수형도 라벨로 취급)
사용 용도 데이터의 위치로 조회 명확한 라벨로 데이터 조회

🔥 실전 예제: iloc와 loc 사용 비교

데이터프레임 생성

코드 복사
data = pd.DataFrame({
    'A': [1, 2, 3],
    'B': [4, 5, 6],
    'C': [7, 8, 9]
}, index=['one', 'two', 'three'])

iloc 사용: 위치 기반 조회

코드 복사
# 첫 번째 행 선택
print(data.iloc[0])
# 결과:
# A    1
# B    4
# C    7

loc 사용: 라벨 기반 조회

코드 복사
# 'one' 행 선택
print(data.loc['one'])
# 결과:
# A    1
# B    4
# C    7

📝 언제 사용해야 할까?

iloc

  • 데이터의 위치(숫자 인덱스)로 조회해야 할 때.

  • 데이터프레임이 순서대로 정렬되어 있고, 위치 기반 처리가 필요한 경우.

    loc

  • 라벨 이름으로 명확히 데이터를 조회하고 싶을 때.

  • 데이터프레임에 날짜, 카테고리 등 라벨이 설정되어 있는 경우.


💡 마무리

iloc과 loc는 pandas에서 데이터를 조회할 때 없어서는 안 될 도구입니다. 두 메서드의 차이를 이해하고 데이터의 위치와 라벨을 적절히 구분해 사용하면 데이터 분석 작업을 훨씬 더 효율적으로 할 수 있습니다.

직접 코드를 실행해보며 두 메서드의 차이를 익혀보세요! 😊


🛠 참고 태그

#pandas #iloc #loc #데이터프레임 #파이썬

궁금한 점이나 추가로 보고 싶은 내용이 있다면 댓글로 남겨주세요! 👍
이 포스팅이 유익하셨다면 좋아요 ❤️와 구독 부탁드립니다! 🙌

Comments