-
파이썬 Pandas DataFrame .loc vs .iloc<Python>/[DataFrame] 2023. 3. 8. 15:28728x90
loc와 iloc는 Pandas의 DataFrame에서 데이터를 선택, 인덱싱, 슬라이싱할 때 사용하는 두 가지 인덱싱 방법입니다. 이번에는 이 둘의 차이점에 대해 자세히 알아보고, 이를 활용하는 예시를 소개해보도록 하겠습니다.
loc와 iloc의 차이점
loc와 iloc는 모두 데이터프레임에서 데이터를 선택할 때 사용하는 인덱서(indexer)이지만, 사용하는 인덱스의 종류가 다릅니다.
loc는 인덱스의 이름으로 데이터를 선택하는 인덱서입니다. 따라서 인덱스가 문자열인 경우에 사용합니다. 예를 들어, 다음과 같은 데이터프레임이 있다고 가정해봅시다.
>>> import pandas as pd >>> df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]}, index=['a', 'b', 'c']) >>> df A B a 1 4 b 2 5 c 3 6
728x90이 경우, loc를 사용해서 인덱스가 'a'인 행을 선택해보겠습니다.
>>> df.loc['a'] A 1 B 4 Name: a, dtype: int64
위와 같이 loc를 사용하면 인덱스가 'a'인 행이 선택됩니다.
반면, iloc는 정수 인덱스로 데이터를 선택하는 인덱서입니다. 따라서 인덱스가 정수인 경우에 사용합니다. 위에서 생성한 데이터프레임에서는 다음과 같이 사용할 수 있습니다.
>>> df.iloc[0] A 1 B 4 Name: a, dtype: int64
위와 같이 iloc를 사용하면 첫 번째 행이 선택됩니다.
loc와 iloc를 활용하는 예시
이번에는 loc와 iloc를 활용하는 예시를 몇 가지 살펴보겠습니다.
1. 인덱스 범위 지정하여 데이터 선택하기
loc와 iloc는 슬라이싱을 사용하여 인덱스 범위를 지정하여 데이터를 선택할 수 있습니다. 그러나 인덱스의 종류가 다르기 때문에 사용 방법이 다릅니다.
>>> df.loc['a':'b'] # loc 사용 A B a 1 4 b 2 5 >>> df.iloc[0:2] # iloc 사용 A B a 1 4 b 2 5
위와 같이 loc는 'a'부터 'b'까지의 인덱스를 포함하여 데이터를 선택하고, iloc는 0부터 2 미만까지의 정수 인덱스를 사용하여 데이터를 선택합니다.
2. 특정 열의 데이터 선택하기
특정 열의 데이터를 선택하는 방법으로는 loc와 iloc을 이용할 수 있습니다.
loc는 열의 이름을 이용하여 데이터를 선택합니다. iloc은 열의 순서를 이용하여 데이터를 선택합니다.
예를 들어, 다음과 같은 df 데이터프레임이 있다고 가정해보겠습니다.
name age gender 0 John 25 Male 1 Jane 32 Female 2 Jack 19 Male
먼저, loc를 이용하여 name열의 데이터를 선택해보겠습니다.
df.loc[:, 'name']
결과는 다음과 같습니다.
0 John 1 Jane 2 Jack Name: name, dtype: object
이번에는 iloc를 이용하여 name열의 데이터를 선택해보겠습니다.
df.iloc[:, 0]
결과는 다음과 같습니다.
0 John 1 Jane 2 Jack Name: name, dtype: object
위와 같이 loc와 iloc를 이용하여 특정 열의 데이터를 선택할 수 있습니다.
728x90'<Python> > [DataFrame]' 카테고리의 다른 글
파이썬 Pandas DataFrame .groupby (0) 2023.03.08 파이썬 Pandas DataFrame .any vs .all (0) 2023.03.08 파이썬 Pandas DataFrame .filter() like 옵션 (0) 2023.03.07 파이썬 Pandas DataFrame .filter() regex 옵션 (0) 2023.03.07 파이썬 Pandas DataFrame .filter() items 옵션 (0) 2023.03.07