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

Was ist der Unterschied zwischen „loc' und „iloc' von Pandas für die DataFrame-Auswahl?

DDD
DDDOriginal
2024-12-22 00:27:40794Durchsuche

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

Wie unterscheiden sich iloc und loc?

In der Pandas-Bibliothek von Python werden die Funktionen loc und iloc zum Schneiden von DataFrames verwendet. Obwohl sie einige Gemeinsamkeiten aufweisen, unterscheiden sie sich erheblich in ihrem Hauptzweck und dem zugrunde liegenden Mechanismus.

loc vs. iloc: Label-basierte vs. standortbasierte Auswahl

loc arbeitet basierend auf Beschriftungen, bei denen es sich um die Indexwerte handelt, die Zeilen oder Spalten zugeordnet sind. Es ruft Zeilen (oder Spalten) ab, indem es ihre Beschriftungen mit den angegebenen Auswahlkriterien abgleicht. Beispielsweise gibt df.loc[:5] die ersten fünf Zeilen des DataFrame zurück, in denen die Beschriftungen in aufsteigender Reihenfolge sind.

iloc hingegen arbeitet basierend auf Ganzzahlige Standorte. Es wählt Zeilen (oder Spalten) basierend auf ihrer Position im DataFrame aus. Beispielsweise gibt df.iloc[:5] auch die ersten fünf Zeilen zurück, aber seine Auswahl basiert auf der Ordnungsposition (0-basierter Index).

Beispiele zur Veranschaulichung der Unterscheidung

Betrachten Sie den folgenden DataFrame mit einem nicht monotonen Index:

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

Verwenden Sie loc und iloc, um die ersten fünf abzurufen Elemente:

s.loc[:5]   # row by row label (inclusive)
s.iloc[:5]  # row by row location (exclusive)

Die Ergebnisse sind unterschiedlich:

  • s.loc[:5] gibt Zeilen mit den Indexbezeichnungen 0 bis 5 (einschließlich) zurück, was zu Folgendem führt:
0    d
1    e
2    f
  • s.iloc[:5] gibt Zeilen an den Positionen 0 bis 4 (exklusiv) zurück, resultierend in:
49    a
48    b
47    c
0    d
1    e

Allgemeine Unterschiede

Um die allgemeinen Unterschiede zwischen loc und iloc zusammenzufassen:

  • loc: Indexbeschriftungsbasierte, präzise Auswahl nach Tags.
  • iloc: Ganzzahlig standortbasiert, Auswahl nach Position.
  • loc kann verarbeiten nicht-monotone Indizes und Beschriftungen außerhalb der Grenzen, während iloc in solchen Fällen Fehler auslöst.
  • iloc ist in bestimmten Szenarien schneller als loc, insbesondere wenn der Index numerisch und in der richtigen Reihenfolge ist.

Zusätzliche Überlegungen

Es ist wichtig zu beachten, dass iloc auch auf den Spalten eines DataFrames arbeiten kann, jedoch auf dessen Syntax bleibt gleich. loc kann jedoch bei der Auswahl von Spalten Achsenbeschriftungen verwenden, was mehr Flexibilität bietet.

Weitere Informationen finden Sie in der Pandas-Dokumentation zu [Indizierung und Slicing](https://pandas.pydata.org/docs/ user_guide/indexing.html).

Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen „loc' und „iloc' von Pandas für die DataFrame-Auswahl?. 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