Maison >développement back-end >Tutoriel Python >Quelle est la différence entre « iloc » et « loc » de Pandas pour la sélection de données ?

Quelle est la différence entre « iloc » et « loc » de Pandas pour la sélection de données ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-16 18:04:21787parcourir

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

Comment iloc et loc diffèrent : étiquette par rapport à l'emplacement

Comprendre la distinction

Le la principale distinction entre iloc et loc réside dans la manière dont ils accèdent aux lignes et columns:

  • loc: Localise les données à l'aide de étiquettes de ligne et de colonne. Ces étiquettes sont généralement des valeurs d'index ou des noms de colonnes.
  • iloc : Localise les données à l'aide de emplacements entiers de ligne et de colonne. Ces emplacements font référence à la position des éléments dans le DataFrame.

Démonstration

Considérez l'exemple de DataFrame ci-dessous :

Index Column A
0 John
1 Mary
2 Peter

Extraire les 5 premiers rows:

  • loc[:5] : renvoie toutes les lignes avec des étiquettes d'index de 0 à 4 (inclus).
  • iloc[ :5] : Renvoie les 5 premières lignes aux emplacements entiers 0 à 4 (exclusif).

Clarifier la différence

Pour illustrer davantage, considérons un indice non monotone :

Index Series
49 a
48 b
47 c
0 d
1 e
2 f

Accéder au valeur à l'étiquette d'index 0 :

  • loc[0] récupère 'd' car il utilise des étiquettes d'index.
  • iloc[0] récupère 'a' car il utilise des emplacements entiers (même si l'emplacement entier de 'd' est 3).

Accéder à une tranche de rows :

  • loc[0:1] récupère les lignes avec les étiquettes d'index 0 et 1 (inclus).
  • iloc[0:1] récupère uniquement la ligne à l'emplacement d'index 0 (et n'inclut pas la ligne 1).

Considérations supplémentaires

  • Étiquettes manquantes : loc déclenche une KeyError si l'étiquette spécifiée n'est pas dans le index, tandis qu'iloc renvoie une IndexError.
  • Boolean Series : loc peut indexer via une série booléenne, tandis qu'iloc renvoie une NotImplementedError.
  • Callables : loc et iloc peuvent tous deux appliquer des callables en tant qu'indexeurs, mais ils gèrent des limite les valeurs différemment.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn