[python] loc, iloc 차이
2022. 4. 7. 15:23ㆍ파이썬
iloc
- integer location의 약어로, 데이터 프레임의 행이나 칼럼의 순서를 나타내는 정수로 특정 값을 추출해오는 방법이다. loc는 칼럼명을 직접 적거나 특정 조건식을 써줌으로써 사람이 읽기 좋은 방법으로 데이터에 접근하는 방법이었다면, iloc는 컴퓨터가 읽기 좋은 방법으로(숫자로) 데이터가 있는 위치(순서)에 접근한다고 생각하면 쉬울 것이다.
'0번 행, 2번 칼럼' -> df.iloc[0,2]
- 정수형 값으로 데이터 추출(순서에 기반한 숫자)
df.iloc[0] -> 첫번째 행이 추출된다 :pandas.core.series.Series
일반 인덱스접근으로 하면 안되는 이유
날짜 설비용량(MW) 경도 위도 발전기명 발전펌핑구분 01 02 03 04 \
0 20210709 0.7 37.05075 126.5103 당진자재창고태양광 10 0 0 0 0
... 16 17 18 19 20 21 22 23 24 합계
0 ... 382800.0 301248 186000 63216 6720 0 0 0 0 3045024
dataframe에서 원하는 날짜와 일치하는 dataframe을 추출하려고 했었는데 위 데이터에서 20210709 다음날인 20210710데이터를 추출했을때
날짜 설비용량(MW) 경도 위도 발전기명 발전펌핑구분 01 02 03 04 \
1 20210710 0.7 37.05075 126.5103 당진자재창고태양광 10 0 0 0 0
... 16 17 18 19 20 21 22 23 24 합계
1 ... 382800.0 301248 186000 63216 6720 0 0 0 0 3045024
로 나온다.
크기는 [1 rows x 31 columns] 로 동일하지만 dataframe[0] 으로 접근시, 위 데이터는 첫번째 인덱스가 1부터 시작하기 때문에 오류가 발생한다.
따라서 iloc[0]의 순서가 있는 데이터 접근이 필요하다.
loc
- 인덱스 라벨 값 기반으로 데이터 추출
df.loc['2021-09-29'] -> 2021-09-29에 대응하는 행이 추출된다 : pandas.core.series.Series
'파이썬' 카테고리의 다른 글
[python] 시계열_리샘플링(resample,업샘플링,다운샘플링), 시프팅, 윈도잉 (0) | 2022.04.21 |
---|---|
[Python] inplace = True? (0) | 2022.04.21 |
[Python] Dataframe Column Change (0) | 2022.04.07 |
[Python] GroupBy 분할, 적용, 결합 (aggregate, apply, filter, transform) (0) | 2022.04.05 |
[Python] json to dataframe (0) | 2022.04.04 |