주제 : 데이터 인덱싱
작성 : 2023-02-05
버젼 : pandas 1.4.4 (버젼 확인방법 : pd.__version__ )
파이썬을 하다보면 데이터셋(Dataset)에서 원하는 데이터값 또는 특정범위의 데이터 추출이 필요할 때가 있습니다.
현재 가능한 인덱싱 방법은 2가지입니다.
- .loc
- .iloc
.ix(.ix is deprecated)
- 현재 .ix는 더이상 지원하지않기때문에, .ix 대신하는 방법으로 .loc 활용하면 됩니다.
그럼, 하나씩 파보도록 하겠습니다.
1. .loc (=location)
.loc는 label 또는 boolean으로 인덱싱하는 방법은 라벨값으로 특정 값들을 골라오는 방법입니다.
- 문법 : df.loc[row index value, col index value]
우선, 데이터부터 가져와보도록 하겠습니다.
import pandas as pd
from sklearn.datasets import load_iris
# read data from sklearn.datasets
iris = load_iris()
iris_data = iris.data
df = pd.DataFrame(data=iris_data, columns=iris.feature_names)
# indexing with .loc
df.loc[:]
df.loc[:, "sepal length (cm)"]
아래와 같이 특정 라벨명으로 인덱싱이 가능합니다.
그외에도 특정조건에 해당하는 값만 표출도 할 수 있습니다.
- 또는(합집합) : df.loc[(df[조건문1]) | (df[조건문2])]
- 그리고(교집합) : df.loc[(df[조건문1]) & (df[조건문2])]
df.loc[(df["sepal length (cm)"]>3.0) | (df["sepal width (cm)"]>=0.1)]
2. .iloc (=integer location)
.loc와 달리 정수형(integer)를 통해서 행과 열을 추출해오는 방식입니다.
- 문법 : df.loc[row index, col index]
df.iloc[:,3]
df.iloc[3,:]
# 참고사항
iloc의 경우에는 integer만 사용이 가능하기때문에 라벨명으로 기입하는 경우, 오류가 발생합니다.
df.iloc[:,"sepal width (cm)"] #오류발생
df.loc[:,"sepal width (cm)"]
Reference
- 파이썬 머신러닝 완벽가이드 1장
- https://bigdaheta.tistory.com/
- Deprecated: https://www.oxfordlearnersdictionaries.com/definition/english/deprecate?q=Deprecated
728x90
반응형
'Python' 카테고리의 다른 글
[Python] Matplotlib stylesheet 종류 및 적용 (0) | 2023.02.11 |
---|---|
[오류] No module named 'graphviz' in Jupyter Notebook (0) | 2023.02.07 |
[Python] 행과 열 (0) | 2023.02.02 |
[Python] 도표 중첩 (0) | 2023.01.27 |
[Python] 점프투파이썬(기초) 정리 (2) | 2023.01.16 |