<Python>/[DataFrame]

파이썬 Pandas DataFrame .loc vs .iloc

9566 2023. 3. 8. 15:28
728x90

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

이 경우, 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