Python

[파이썬] 데이터프레임 행, 열 선택 - iloc, loc

weweGH 2024. 10. 7. 10:25
반응형

데이터프레임 행,열 선택
데이터프레임 행,열 선택


데이터프레임 행, 열 선택 - loc, iloc


들어가며

파이썬에서 데이터프레임의 행, 열을 선택하는 경우에는 loc, iloc를 사용합니다. 여러 행 또는 열을 선택할 때, 인덱스를 통하여 손쉽게 원하는 데이터 형태로 인덱싱할 수 있습니다.


iloc와 loc를 사용하기 위해서는 인덱스와 라벨에 대한 이해가 필요합니다. 파이썬에서 인덱스는 0부터 시작하므로 순서대로 아래의 이미지와 같이 번호가 부여됩니다. 즉, 행과 열의 위치를 나타내는 번호입니다. 라벨은 컬럼명을 의미합니다. 예를 들어, 아래 데이터프레임의 Occupation 컬럼의 인덱스 번호는 3이고, 라벨은 'Occupation'입니다.

인덱스, 라벨
인덱스, 라벨


데이터 소개

 이 글에서 활용할 데이터는 캐글 데이터셋 중 Online Food Dataset로 온라인 음식 주문 플랫폼에 대한 데이터입니다. 캐글 사이트에서 다운로드할 수 있습니다.


먼저 필요한 패키지인 pandas를 import하고, 데이터를 불러옵니다. pandas는 데이터를 읽기 위한 패키지일 뿐, loc와 iloc 모두 패키지가 필요하지 않습니다.

# pip install pandas
import pandas as pd
df = pd.read_csv('onlinefoods.csv')
df.head()

df.head()
df.head()


  • 행 선택 - iloc
  • 행 선택 - loc
  • 열 선택 - iloc
  • 열 선택 - loc

행 선택 - iloc

iloc는 인덱스를 통하여 데이터프레임을 인덱싱할 수 있습니다. 1개의 행 또는 여러 개의 행도 가능합니다.


1) 1개의 행 선택

df의 인덱스가 0인 행 선택은 다음과 같습니다.

df.iloc[[0]]

df.iloc[[0]]
df.iloc[[0]]


2) 여러 개의 행 선택

df의 인덱스가 2, 4, 6인 행 선택은 다음과 같습니다.

df.iloc[[2,4,6]]

df.iloc[[2,4,6]]
df.iloc[[2,4,6]]


df의 인덱스가 0 부터 30인 행 선택은 다음과 같습니다.

df.iloc[0:30]

df.iloc[0:30]
df.iloc[0:30]


행 선택 - loc

행 선택에 있어 loc 또한 iloc와 문법은 동일합니다. 1개의 행 또는 여러 개의 행도 가능합니다.


1) 1개의 행 선택

df의 인덱스가 3인 행 선택은 다음과 같습니다.

df.loc[[3]]

df.loc[[3]]
df.loc[[3]]


2) 여러 개의 행 선택

df의 인덱스가 1, 3, 5인 행 선택은 다음과 같습니다.

df.loc[[1,3,5]]

df.loc[[1,3,5]]
df.loc[[1,3,5]]


df의 인덱스가 0 부터 20인 행 선택은 다음과 같습니다.

df.loc[0:20]

df.loc[0:20]
df.loc[0:20]


열 선택 - iloc

iloc는 인덱스를 통하여 데이터프레임을 인덱싱할 수 있습니다. 1개의 열 또는 여러 개의 열도 가능합니다.


1) 1개의 열 선택

df의 열 인덱스가 0인 열 선택은 다음과 같습니다.

df.iloc[:,[0]].head()

df.iloc[:,[0]]
df.iloc[:,[0]]


2) 여러 개의 열 선택

df의 열 인덱스가 3, 4, 5인 열 선택은 다음과 같습니다.

df.iloc[:,[3,4,5]].head()

df.iloc[:,[3,4,5]]
df.iloc[:,[3,4,5]]


df의 열 인덱스가 6부터 10인 열 선택은 다음과 같습니다.

df.iloc[:,6:10].head()

df.iloc[:,6:10]
df.iloc[:,6:10]


열 선택 - loc

loc는 라벨을 통하여 데이터프레임을 인덱싱할 수 있습니다. 1개의 열 또는 여러 개의 열도 가능합니다.


1) 1개의 열 선택

df의 열 라벨(컬럼명)이 Gender인 열 선택은 다음과 같습니다.

df.loc[:,['Gender']].head()

df.loc[:,['Gender']]
df.loc[:,['Gender']]


2) 여러 개의 열 선택

df의 열 라벨(컬럼명)이 Age, Occupation인 열 선택은 다음과 같습니다.

df.loc[:,['Age','Occupation']].head()

df.loc[:,['Age','Occupation']]
df.loc[:,['Age','Occupation']]


전체 코드

# pip install pandas
import pandas as pd
df = pd.read_csv('onlinefoods.csv')


## 행 선택 -iloc
df.iloc[[0]]
df.iloc[[2,4,6]]
df.iloc[0:30]


## 행 선택 -loc
df.loc[[3]]
df.loc[[1,3,5]]
df.loc[0:20]


## 열 선택 -iloc
df.iloc[:,[0]].head()
df.iloc[:,[3,4,5]].head()
df.iloc[:,6:10].head()


## 열 선택 -loc
df.loc[:,['Gender']].head()
df.loc[:,['Age','Occupation']].head()

 

반응형