Pandas에서 loc와 iloc의 차이점 알아보기
Pandas 데이터프레임을 사용하여 loc
와 iloc
메서드의 차이점을 상세히 설명하겠습니다.
데이터프레임 만들기(예시)
Python
import pandas as pd data = { '브랜드': ['코카콜라', '펩시', '칠성사이다', '스프라이트', '몬스터', '레드불', '파워에이드'], '가격': [1500, 1500, 1200, 1300, 3000, 2500, 2000], '용량': [500, 500, 450, 500, 355, 250, 600] }
df = pd.DataFrame(data)
데이터프레임 출력 결과:
Code
브랜드 가격 용량
0 코카콜라 1500 500
1 펩시 1500 500
2 칠성사이다 1200 450
3 스프라이트 1300 500
4 몬스터 3000 355
5 레드불 2500 250
6 파워에이드 2000 600
loc: 라벨 기반 데이터 선택
- loc 메서드는 라벨(인덱스 또는 컬럼명)을 사용해 데이터를 선택합니다.
- 슬라이싱을 사용할 때, start : end 형식은 start에서 end까지 포함하여 데이터를 선택합니다.
- Python의 일반적인 리스트 슬라이싱과는 다름!
예시 1: 단일 행 선택
print(df.loc[0]) # 0번 인덱스 선택
출력 결과:
Python
브랜드 코카콜라
가격 1500
용량 500
Name: 0, dtype: object
예시 2: 여러 행 선택
print(df.loc[[0, 2]]) # 인덱스 0번과 2번 선택
출력 결과:
Code
브랜드 가격 용량
0 코카콜라 1500 500
2 칠성사이다 1200 450
예시 3: 특정 열 선택
print(df.loc[:, '가격']) # 모든행 선택 + '가격'컬럼 선택
출력 결과:
Code
0 1500
1 1500
2 1200
3 1300
4 3000
5 2500
6 2000
Name: 가격, dtype: int64
iloc: 위치 기반 데이터 선택
iloc
메서드는 위치(행과 열의 정수 인덱스)를 사용해 데이터를 선택합니다.
- iloc는 순수하게 정수 기반의 위치로 데이터를 선택합니다.
- 슬라이싱을 사용할 때, start index : end index 형식은 start index에서 시작하여 end index - 1까지의 범위를 의미합니다.
- Python 리스트의 슬라이싱과 동일한 방식으로 작동!
예시 4: 단일 행 선택
print(df.iloc[0]) # 0번 인덱스 선택
출력 결과:
Python
브랜드 코카콜라
가격 1500
용량 500
Name: 0, dtype: object
예시 5: 여러 행 선택
print(df.iloc[[0, 2]]) # 0번, 2번 인덱스 선택
출력 결과:
Code
브랜드 가격 용량
0 코카콜라 1500 500
2 칠성사이다 1200 450
예시 6: 특정 열 선택
print(df.iloc[:, 1]) # 모든행 + 1 번째 컬럼 선택
출력 결과:
Code
0 1500
1 1500
2 1200
3 1300
4 3000
5 2500
6 2000
Name: 가격, dtype: int64
정리
- iloc은 순수한 정수 위치를 기반으로 하며 Python의 리스트 슬라이싱과 유사하게 끝 인덱스를 포함하지 않습니다.
- loc은 라벨 기반의 선택을 수행하며, 슬라이싱 시 끝 라벨도 결과에 포함됩니다.
추가 정보
이 글에서 제공된 정보 외에도 Pandas의 loc
및 iloc
에 대해 더 자세한 정보를 원한다면 공식 문서를 참조하세요 :)