Maison >développement back-end >Tutoriel Python >Quelles sont les principales différences entre les méthodes `loc` et `iloc` de Pandas pour le découpage DataFrame ?

Quelles sont les principales différences entre les méthodes `loc` et `iloc` de Pandas pour le découpage DataFrame ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-19 13:00:11264parcourir

What are the key differences between Pandas' `loc` and `iloc` methods for DataFrame slicing?

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

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!

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