iloc과 loc는 Pandas에서 DataFrame을 분할하는 두 가지 방법입니다. 두 방법 모두 행과 열을 선택하는 데 사용할 수 있지만 입력을 해석하는 방법이 다릅니다.
loc는 특정 레이블이 있는 행(및/또는 열)을 가져옵니다.
iloc은 정수 위치에서 행(및/또는 열)을 가져옵니다.
시연하려면 시리즈를 고려하세요. 단조롭지 않은 정수 인덱스가 있는 문자:
>>> s = pd.Series(list("abcdef"), index=[49, 48, 47, 0, 1, 2]) 49 a 48 b 47 c 0 d 1 e 2 f
s.loc[0] # value at index label 0 'd' s.iloc[0] # value at index location 0 'a' s.loc[0:1] # rows at index labels between 0 and 1 (inclusive) 0 d 1 e s.iloc[0:1] # rows at index location between 0 and 1 (exclusive) 49 a
다음은 다양한 객체를 전달할 때 s.loc와 s.iloc 사이의 몇 가지 차이점/유사점입니다.
Object | Description | s.loc[Object] | s.iloc[Object] |
---|---|---|---|
0 | Single item | Value at index label 0 (_the string 'd'_) | Value at index location 0 (_the string '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' | Bool series (indicating which values have the property) | One row (containing 'f') | NotImplementedError |
(s>e).values | Bool array | One row (containing 'f') | Same as loc |
999 | Int object not in index | KeyError | IndexError (out of bounds) |
-1 | Int 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]] |
위 내용은 DataFrame 슬라이싱을 위한 Pandas의 `loc` 메소드와 `iloc` 메소드의 주요 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!