본문 바로가기
DATA/Pandas

Pandas - 인덱싱과 슬라이싱 ( head, tail, loc, iloc )

by jun.s.gi 2022. 11. 27.
728x90
path = 'https://github.com/dongupak/DataML/raw/main/csv/'
file = path + 'vehicle_prod.csv'
df4 = pd.read_csv(file, index_col = 0)

1. 몇 개의 행만 가져오자

df4.head(3)

head(n) 메소드를 사용하면 위에서부터 n개, tail(n) 메소드를 사용하면 아래에서부터 n개


2. 슬라이싱 [ : ]

df4[2:6]

파이썬의 슬라이싱과 동일하게 동작한다. ( 인덱스 번호 2번부터 6 - 1번까지 )

열 선택과 행 선택을 결합하는 방법은 아래와 같이 열을 먼저 추출 후 Datagram의 인덱스를 인덱싱하면 된다.

df4['2011'][['China', 'Korea']] # or df4['2011'][[0, 4]]


3. loc[ 'index name' ] : 데이터 프레임 인덱스에서 특정 레이블이 있는 행을 가져온다.

기본 표

df4.loc['Korea']

Korea 행에 대한 컬럼과 데이터 값을 보여준다.

 

만약 US와 Korea 인덱스를 사용할 경우 이중 대괄호 내부에 인덱스 이름을 적어주어야 한다.

 df4.loc['US', 'Korea'] 처럼 접근할 경우 키 오류 발생

 

특정 요소 하나만 선택하려면 loc() 함수에 행과 열의 레이블을 써주면 된다.

df.loc['Korea', '2011'] # or df['2011']['Korea']

4. iloc[] : 정수형 인덱스를 사용하여 특정 위치에 있는 행을 가져온다.

df4.iloc[4]는 df4.loc['Korea']와 같지만 iloc의 대괄호 안에는 정수형 인덱스만 올 수 있다. 따라서 iloc['Korea']는 오류

 

 - 대괄호와 이중 대괄호

df4.iloc[2, 4] 처럼 괄호를 하나만 사용하면 데이터 프레임의 2행 4열(인덱스 번호)에 해당하는 데이터를 출력한다. ( US행의 2011년 데이터 출력 )

 

df4.iloc[[2, 4]] 처럼 이중으로 사용하면 2행과 4행을 출력한다.

 

- iloc 슬라이싱

df4.iloc[2 : 4] == df4.iloc[[2, 3]]

위 코드는 df4[2 : 4]와도 동일하다. 모두 2, 3행을 출력한다.

728x90