06_select_iloc
| 6 Minute Read on Pandas
iloc¶
- iloc는 Index Key(Position) 기반의 인덱싱 방법이다.iloc은 Position(위치) 기반이므로 위치 정수(index key)를 기반으로 행과 열을 지정해야 합니다
- 직관적으로 loc 보다 iloc가 쉬움. 행렬처럼 생각하면 됨
- iloc docs를 보면 기본적으로는 라벨 인덱싱지만, boolean 배열이 함께 사용될 수 있다라고 정의되어 있다
- row indexes, indexes label로 허용되는 인풋은 다음과 같다.
- 1, 4, 5 와 같은 하나의 단일 인덱스 정수
- [1,4]와 같은 인덱스 리스트나 배열
- 1:4 와 같이 인덱스 표현되는 slice 객체(1:4는 [1,2,3,4]와 같은 의미임)
- boolean 배열
In [1]:
import pandas as pd
import numpy as np
data = np.random.randn(3,4)
index = [2003,2004,2005]
columns = ['Arizona','Boston', 'Chicago','Detroit']
df = pd.DataFrame(data, index = index, columns = columns)
iloc 인풋으로 단일 인덱스나 인덱스의 리스트가 사용되는 경우¶
In [2]:
print(df.shape) # 전체 행렬의 크기
df.iloc[:,:] # 정부를 불러 오는 것은 loc와 같음
print(df.iloc[:,:])
df.iloc[1,1]
print(df.iloc[1,1])
df.iloc[1,3]
Out[2]:
In [3]:
# index 정수를 사용하므로 for문을 사용할 수 있음
for i in range(3):
print(i)
print(df.iloc[1,i])
iloc 인풋으로 라벨의 리스트가 입력 되는 경우¶
In [4]:
# loc인풋으로 라벨의 리스트가 입력 되는 경우
df.iloc[[1,2],[1,3]]
print(df.iloc[[1,2],[1,3]])
df.iloc[:,[1,3]]
print(df.iloc[:,[1,3]] )
loc 인풋으로 라벨의 slice 객체 입력되는 경우¶
In [5]:
df.iloc[1:3,:] #2, 3행만의 데이터 열은 전부
df.iloc[:,1:2] # 행은 정부 열은 2열만
Out[5]:
In [6]:
df.iloc[:2,:2] # 2 * 2 행렬
df.iloc[: -1,: -2] #3 에서 1을 빼는 것.. 4에서 2를 빼는 것
Out[6]:
In [7]:
# loc와 마찬가지로 loc도 index만 사용하고 컬럼을 생략할 수 있다.
df.iloc[2]
print(df.iloc[2])
print('---array 적용---')
df.iloc[[1,2]]
print(df.iloc[[1,2]])
print('---slicing 적용--')
df.iloc[1:3]
print(df.iloc[1:3])
df[1:3] # slicing인 경우에는 iloc도 생략할 수 있음
Out[7]: