본문 바로가기

코딩으로 익히는 Python/Pandas

[Python] 03. pandas Series 인덱싱(Indexing),슬라이싱(Slicing) : boolean indexing,loc()과 iloc() 차이 예제

728x90
반응형
SMALL
import pandas as pd
import numpy as np
data = {'aa':10,'bb':20,'cc':30,'dd':40, 'ee':50}
sr = pd.Series(data, name='국어점수')
sr
[OUT] :

aa    10
bb    20
cc    30
dd    40
ee    50
Name: 국어점수, dtype: int64

인덱싱

sr[0] # sr의 제일 처음 값 가져오기
[OUT] :

10

 

sr[-1] # sr의 제일 마지막 값 가져오기
[OUT] :

50

 

sr['aa'] # sr.aa -> 가능하지만 권장하진 않음. 속성명과 인덱스가 중복될 수 있으므로.
[OUT] :

10

 

sr['cc']
[OUT] :

30

 

sr[[0,2,3]]
[OUT] :

aa    10
cc    30
dd    40
Name: 국어점수, dtype: int64

 

sr[['aa','cc','dd']]
[OUT] :

aa    10
cc    30
dd    40
Name: 국어점수, dtype: int64

슬라이싱

sr[1:4]
[OUT] :

bb    20
cc    30
dd    40
Name: 국어점수, dtype: int64

 

sr[:-1]
[OUT] :

aa    10
bb    20
cc    30
dd    40
Name: 국어점수, dtype: int64

 

sr['aa':'cc'] # 부여된 인덱스로 슬라이싱은 끝인덱스 포함!
[OUT] :

aa    10
bb    20
cc    30
Name: 국어점수, dtype: int64

iloc 속성(zero base 기준) -> 부여된 인덱스 안됨

sr.iloc[0]
[OUT] :

10

 

sr.iloc[-1]
[OUT] :

50

 

sr.iloc[1:]
[OUT] :

bb    20
cc    30
dd    40
ee    50
Name: 국어점수, dtype: int64

loc속성(부여된 인덱스 기준) -> 끝 인덱스 포함

# sr.loc[0] -> error
sr.loc['aa']
[OUT] :

10

 

sr.loc['bb':]
[OUT] :

bb    20
cc    30
dd    40
ee    50
Name: 국어점수, dtype: int64

 

sr.loc['bb':'dd']
[OUT] :

bb    20
cc    30
dd    40
Name: 국어점수, dtype: int64

 


boolean indexing

sr[[True,False,False,True,True]]
[OUT] :

aa    10
dd    40
ee    50
Name: 국어점수, dtype: int64

loc 또는 iloc을 반드시 사용해야 할 때 -> 인덱스가 숫자인 경우

sr.index = [2,3,4,5,6]
sr
[OUT] :

2    10
3    20
4    30
5    40
6    50
Name: 국어점수, dtype: int64

 

sr.index # 인덱스가 문자가 아닌 숫자
[OUT] :

Int64Index([2, 3, 4, 5, 6], dtype='int64')

 

sr[2] # 부여된 인덱스, 제로베이스 둘 다 가능 (10,30) -> 충돌(부여된 인덱스 기준으로 처리함)
[OUT] :

10

 

sr.iloc[0]
[OUT] :

10

 

sr.iloc[-1]
[OUT] :

50

 

sr.loc[2]
[OUT] :

10

 

sr.loc[3]
[OUT] :

20

 

sr.loc[2:4]
[OUT] :

2    10
3    20
4    30
Name: 국어점수, dtype: int64

 

sr.iloc[0:2]
[OUT] :

2    10
3    20
Name: 국어점수, dtype: int64

Review
- loc과 iloc 매우 중요
728x90
반응형
LIST