>백엔드 개발 >파이썬 튜토리얼 >데이터 선택을 위한 Pandas `loc`과 `iloc`의 차이점은 무엇입니까?

데이터 선택을 위한 Pandas `loc`과 `iloc`의 차이점은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-12-20 03:10:10154검색

What's the Difference Between Pandas `loc` and `iloc` for Data Selection?

Pandas에서 iloc과 loc의 차이점:

Pandas를 사용한 데이터 조작에서 iloc과 loc는 흔히 혼동을 일으키는 두 가지 슬라이싱 방법입니다. 효율적인 데이터 관리를 위해서는 근본적인 차이점을 이해하는 것이 필수적입니다.

라벨과 위치

loc과 iloc의 주요 차이점은 데이터를 선택하는 방법에 있습니다.

  • loc: 다음을 기반으로 데이터에 액세스합니다. 레이블(예: 행 또는 열 이름(인덱스 및 열 레이블))
  • iloc: 객체 내 정수 위치를 기반으로 데이터에 액세스합니다. 축(행/열 숫자).

예:

문자가 포함된 비단조 인덱스가 있는 DataFrame df를 고려하세요.

import pandas as pd

df = pd.DataFrame({'col1': ['a', 'b', 'c', 'd', 'e', 'f']}, index=[49, 48, 47, 0, 1, 2])

loc(라벨 기반 슬라이싱):

  • df.loc[0]: 인덱스 레이블이 "0"('d')인 행을 검색합니다.
  • df.loc[0:1 ]: 레이블이 0과 1('d' 및 'e').

iloc(위치 기반 슬라이싱):

  • df.iloc[0]: 인덱스 위치에서 값을 가져옵니다. 0 ('a').
  • df.iloc[0:1]: 한 행을 선택합니다. 인덱스 위치 0('a').

주요 차이점:

다음 표에서는 다양한 시나리오에서 loc와 iloc의 차이점을 강조합니다.

Object Description loc iloc
0 Single item Value at index label 0 ('d') Value at index location 0 ('a')
0:1 Slice Two rows (labels 0 and 1) One row (first row at location 0)
1:47 Slice with out-of-bounds end Zero rows (empty Series) Five rows (location 1 onwards)
1:47:-1 Slice with negative step Three rows (labels 1 back to 47) Zero rows (empty Series)
[2, 0] Integer list Two rows with given labels Two rows with given locations
s > 'e' Boolean series (indicating true values) One row (containing 'f') NotImplementedError
(s>'e').values Boolean array One row (containing 'f') Same as loc
999 Integer object not in index KeyError IndexError (out of bounds)
-1 Integer object not in index KeyError Returns last value in s
lambda x: x.index[3] Callable applied to series (here returning 3rd item in index) s.loc[s.index[3]] s.iloc[s.index[3]]

위 내용은 데이터 선택을 위한 Pandas `loc`과 `iloc`의 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.