iloc et loc sont deux méthodes pour découper un DataFrame dans Pandas. Les deux méthodes peuvent être utilisées pour sélectionner des lignes et des colonnes, mais elles diffèrent dans la façon dont elles interprètent l'entrée.
loc obtient des lignes (et/ou des colonnes) avec des étiquettes particulières.
iloc obtient des lignes (et/ou des colonnes) à des emplacements entiers.
Pour démontrer, considérons une série de caractères avec un index entier non monotone :
>>> 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
Voici quelques-unes des différences/similitudes entre s.loc et s.iloc lorsque divers objets sont passés :
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]] |
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!