Maison > développement back-end > Tutoriel Python > Quelle est la différence entre « loc » et « iloc » des pandas pour la sélection DataFrame ?

Quelle est la différence entre « loc » et « iloc » des pandas pour la sélection DataFrame ?

DDD
Libérer: 2024-12-22 00:27:40
original
791 Les gens l'ont consulté

What's the Difference Between pandas' `loc` and `iloc` for DataFrame Selection?

En quoi iloc et loc sont-ils différents ?

Dans la bibliothèque pandas de Python, les fonctions loc et iloc sont utilisées pour découper des DataFrames. Bien qu'ils partagent certaines similitudes, ils diffèrent considérablement dans leur objectif principal et leur mécanisme sous-jacent.

loc vs. iloc : sélection basée sur l'étiquette ou basée sur l'emplacement

loc fonctionne sur la base de étiquettes, qui sont les valeurs d'index associées aux lignes ou aux colonnes. Il récupère les lignes (ou colonnes) en faisant correspondre leurs étiquettes aux critères de sélection spécifiés. Par exemple, df.loc[:5] renverra les cinq premières lignes du DataFrame, où les étiquettes sont par ordre croissant.

iloc, quant à lui, fonctionne en fonction de emplacements entiers. Il sélectionne les lignes (ou colonnes) en fonction de leur position dans le DataFrame. Par exemple, df.iloc[:5] renverra également les cinq premières lignes, mais sa sélection est basée sur la position ordinale (index basé sur 0).

Exemples pour illustrer la distinction

Considérons le DataFrame suivant avec un index non monotone :

s = pd.Series(list("abcdef"), index=[49, 48, 47, 0, 1, 2]) 
Copier après la connexion

Utiliser loc et iloc pour récupérer les cinq premiers elements :

s.loc[:5]   # row by row label (inclusive)
s.iloc[:5]  # row by row location (exclusive)
Copier après la connexion

Les résultats sont différents :

  • s.loc[:5] renvoie les lignes avec les étiquettes d'index 0 à 5 (inclus), ce qui donne :
0    d
1    e
2    f
Copier après la connexion
  • s.iloc[:5] renvoie les lignes aux emplacements 0 à 4 (exclusifs), ce qui donne dans :
49    a
48    b
47    c
0    d
1    e
Copier après la connexion

Différences générales

Pour résumer les différences générales entre loc et iloc :

  • loc : sélection précise basée sur les étiquettes d'index par balises.
  • iloc : nombre entier basé sur la localisation, sélection par position.
  • loc peut gérer index non monotones et étiquettes hors limites, alors qu'iloc génère des erreurs dans de tels cas.
  • iloc fonctionne plus rapidement que loc dans certains scénarios, en particulier lorsque l'index est numérique et dans l'ordre.

Considérations supplémentaires

Il est important de noter qu'iloc peut également opérer sur les colonnes d'un DataFrame, mais sa syntaxe reste le même. loc, cependant, peut utiliser des étiquettes d'axe lors de la sélection des colonnes, offrant plus de flexibilité.

Pour plus d'informations, reportez-vous à la documentation pandas sur [l'indexation et le découpage](https://pandas.pydata.org/docs/ user_guide/indexing.html).

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal