✔ Python

[Python] 데이터 인덱싱_.ix/.loc/.iloc

  • -
주제 : 데이터 인덱싱
작성 : 2023-02-05
버젼 : pandas 1.4.4 (버젼 확인방법 : pd.__version__ )

파이썬을 하다보면 데이터셋(Dataset)에서 원하는 데이터값 또는 특정범위의 데이터 추출이 필요할 때가 있습니다.

현재 가능한 인덱싱 방법은 2가지입니다. 

  • .loc
  • .iloc
  • .ix (.ix is deprecated)
    - 현재 .ix는 더이상 지원하지않기때문에,  .ix 대신하는 방법으로 .loc 활용하면 됩니다.

그럼, 하나씩 파보도록 하겠습니다.

.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[:]

df.loc[:, "sepal length (cm)"]

df.loc

아래와 같이 특정 라벨명으로 인덱싱이 가능합니다.

그외에도 특정조건에 해당하는 값만 표출도 할 수 있습니다.

  • 또는(합집합) : 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)]

 

데이터 인덱싱

.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. 파이썬 머신러닝 완벽가이드 1장
  2. https://bigdaheta.tistory.com/
  3. Deprecated: https://www.oxfordlearnersdictionaries.com/definition/english/deprecate?q=Deprecated

deprecate


728x90
반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.