Python(Colab) 데이터프레임 인덱싱(loc,iloc,boolean)

2023. 6. 8. 15:40파이썬

loc : 컬럼으로 인덱싱 하는 법

여러개의 컬럼을 가져올시 무조건 list화 시키기

#loc 인덱싱 : 레이블(이름)으로 인덱싱 하는 법
#행과 열이 모두 인덱싱과 슬라이싱이 가능하다.

#모든 행의 name값을 가져오기
df.loc[:,'name']


#여러개의 레이블을 출력하기
df.loc[:,['name','gender','height']]


#인덱스 2번부터 5번까지 불러오기(5번을 포함 !)
df.loc[2:5,'name']


# column 슬라이싱도 가능함!
# name부터 gender까지 뽑아오기 (인덱스 3번부터 8번까지)
df.loc[3:8,'name':'gender']

 

iloc : 인덱스로 인덱싱 하는 법

여러개의 컬럼을 가져올시 무조건 list화 시키기

 

df.iloc[:,[0,2]] #'name과','company'만 뽑아오기


df.iloc[:,0:2] # 인덱스 2번을 포함하지 않음 !
 
 
# 인덱스 번호 1번 2번의  company 와 gender를 가져오기
df.iloc[1:3,2:4]  
 

 

 

Boolean 인덱싱 : True,False를 가진 시리즈를 통해 출력하기 

df['height'] >= 180

 

 

이렇게 비교시 불린타입의 시리즈로 결과가 도출된다. 이것을 이용한 인덱싱

# 조건식으로 정렬한 것을 데이터 프레임에 넣으면 해당 데이터 도출 가능
df[df['height'] >= 180]
 
 

# 키가 180 넘는 사람의 이름만 출력
df['name'] [df['height'] >= 180]
 
 

# 키가 180 넘는 사람의 이름 성별 키 출력
 
#df [출력하고 싶은 컬럼][조건 컬럼(boolean 형식 시리즈)] 
df[['name','gender','height']] [df['height'] >= 180]
 

 

 

loc 적용

df.loc[:,['name','gender','height']][df['height']>= 180]
 
 
 
df.loc[df['height']>= 180,['name','gender','height']]
728x90