Heim >Backend-Entwicklung >Python-Tutorial >Was ist der Unterschied zwischen Pandas „loc' und „iloc' für die Datenauswahl?

Was ist der Unterschied zwischen Pandas „loc' und „iloc' für die Datenauswahl?

Linda Hamilton
Linda HamiltonOriginal
2024-12-20 03:10:10131Durchsuche

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

Wie sich iloc und loc in Pandas unterscheiden:

Bei der Datenbearbeitung mit Pandas sind iloc und loc zwei häufig verwendete Slicing-Methoden, die oft zu Verwirrung führen. Das Verständnis ihrer grundlegenden Unterschiede ist für eine effiziente Datenverwaltung von entscheidender Bedeutung.

Label vs. Standort

Der Hauptunterschied zwischen loc und iloc liegt in der Art und Weise, wie sie Daten auswählen:

  • loc: Greift auf Daten basierend auf Beschriftungen zu, z. B. Zeile oder Spaltennamen (Index und Spaltenbezeichnungen).
  • iloc: Greift auf Daten basierend auf ganzzahligen Positionen innerhalb der Achse des Objekts (Zeilen-/Spaltennummern) zu.

Beispiele:

Betrachten Sie einen DataFrame df mit einem nicht monotonen Index, der Buchstaben enthält:

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):

  • df.loc[0]: Ruft die ab Zeile mit Indexbezeichnung „0“ ('d').
  • df.loc[0:1]: Gibt zwei Zeilen mit Beschriftungen zurück 0 und 1 ('d' und 'e').

iloc (Location-Based Slicing):

  • df.iloc[0 ]: Ruft den Wert an Indexposition 0 ('a') ab.
  • df.iloc[0:1]: Wählt eine Zeile aus Indexposition 0 ('a').

Hauptunterschiede:

Die folgende Tabelle zeigt die Unterschiede zwischen loc und iloc in verschiedenen Szenarien:

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]]

Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen Pandas „loc' und „iloc' für die Datenauswahl?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn