본 글은 파이썬 내 pandas 라이브러리를 활용하여 DataFrame을 다룰 때 필요한 .loc()과 .iloc() 각각의 특징과 차이점을 설명하고자 작성되었습니다.
우선, 설명을 위해서 seaborn을 활용하여 예시의 데이터(iris)를 가져오도록 하겠습니다.
>>> import seaborn as sns
>>> iris = sns.load_dataset('iris')
>>> iris.head()
1. loc
loc은 레이블(Label)을 기반으로 데이터를 선택하는 메서드입니다. 행과 열의 이름(Label)을 사용하여 데이터에 접근합니다. 즉, 행과 열의 이름을 명시적으로 지정하여 데이터를 선택합니다.
# 열 이름이 'species'인 데이터 중 'virginica'를 가진 값 선택
>>> iris.loc[iris['species'] == 'virginica']
2. iloc
iloc은 정수(Integer) 기반의 인덱스를 사용하여 데이터를 선택하는 메서드입니다. 행과 열의 정수 위치(인덱스)를 이용하여 데이터에 접근합니다. 즉, 데이터의 위치를 정수로 명시하여 선택합니다.
# 첫 번째 행과 두 번째 열에 있는 데이터 선택
>>> iris.iloc[0, 1]
3.5
3. loc과 iloc의 차이점
인덱스의 타입:
loc은 레이블(Label)을 사용하므로, 행과 열의 이름이 문자열이나 다른 데이터 타입일 수 있습니다.
iloc은 정수(Integer)를 사용하므로, 행과 열의 인덱스는 정수여야 합니다.
사용법:
loc은 명시적으로 레이블을 사용하여 데이터를 선택하는 데에 중점을 둡니다.
iloc은 정수 위치(인덱스)를 사용하여 데이터를 선택하는 데에 중점을 둡니다.
예시:
loc 예시: df.loc['A', 'column_name']
iloc 예시: df.iloc[0, 1]
언제 어떤 메서드를 사용할지는 데이터프레임의 구조 및 사용자의 목적에 따라 다릅니다.
loc은 레이블이 명확하게 정의되어 있을 때 유용하며, iloc은 정수 기반의 인덱스가 사용되는 경우에 유용합니다.
'데이터 분석&엔지니어링 캠프' 카테고리의 다른 글
통계 - 가설 검정 (1) (0) | 2024.01.11 |
---|---|
파이썬 - pandas 데이터 통합하기 (concat, join, merge) (0) | 2024.01.08 |
파이썬 - matplotlib 텍스트 삽입 (0) | 2024.01.05 |
파이썬 - pandas 날짜 자동 생성 date_range (2) | 2024.01.04 |
파이썬 - 시퀀스 자료형 (0) | 2024.01.02 |