Maison >développement back-end >Tutoriel Python >Quelle est la différence entre Pandas `loc` et `iloc` pour la sélection de données ?
Dans la manipulation de données à l'aide de Pandas, iloc et loc sont deux méthodes de découpage couramment utilisées qui prêtent souvent à confusion. Comprendre leur différence fondamentale est essentiel pour une gestion efficace des données.
Étiquette ou emplacement
La distinction clé entre loc et iloc réside dans la façon dont ils sélectionnent les données :
Exemples :
Considérez un DataFrame df avec un index non monotone contenant des lettres :
import pandas as pd df = pd.DataFrame({'col1': ['a', 'b', 'c', 'd', 'e', 'f']}, index=[49, 48, 47, 0, 1, 2])
loc (Label-Based Slicing) :
iloc (Location-Based Slicing) :
Différences clés :
Le tableau suivant met en évidence les différences entre loc et iloc dans divers scénarios :
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]] |
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!