Heim  >  Artikel  >  Backend-Entwicklung  >  Wann erstellt Pandas eine Ansicht und wann eine Kopie eines DataFrames?

Wann erstellt Pandas eine Ansicht und wann eine Kopie eines DataFrames?

Barbara Streisand
Barbara StreisandOriginal
2024-11-04 05:28:02678Durchsuche

When Does Pandas Create a View vs. a Copy of a DataFrame?

Verstehen der Pandas-Regeln für Ansicht und Kopie

Beim Umgang mit Datenrahmen in Pandas ist es wichtig, den Unterschied zwischen Ansichten und Kopien zu verstehen. Diese Unterscheidung bestimmt, ob Änderungen an einer Teilmenge eines Datenrahmens Auswirkungen auf den ursprünglichen Datenrahmen haben.

Regeln für die Erstellung von Ansichten und Kopien

  • Kopieren:

    • Alle Vorgänge, mit Ausnahme von Indexern, die Werte festlegen, generieren eine Kopie.
    • Zu den Vorgängen, die Kopien zurückgeben, gehören: Abfragen (.query), Datenbearbeitungsfunktionen ( .fillna, .dropna) und bestimmte Slicing-Vorgänge.
  • Ansicht:

    • Indexer, die Werte festlegen (_loc , _iloc, _iat, _at) ändert den Datenrahmen standardmäßig direkt.
    • Indexer, die einfach typisierte Objekte abrufen, können je nach Speicherlayout Ansichten oder Kopien sein. Dies ist jedoch kein verlässlicher Indikator.

Ausnahmen und Klarstellungen

  • inplace=True: Einige Operationen bieten eine Inplace-Option (z. B. _inplace=True), die den ursprünglichen Datenrahmen ändert, anstatt eine Kopie zurückzugeben.
  • Objekte mit mehreren D-Typen: Indexer für Objekte mit mehreren D-Typen immer Kopien erstellen.
  • Verkettete Indizierung:Verkettete Indizierungsoperationen (z. B. _[_df.C <= df.B].loc[:,'B':'E'] _) erzeugt möglicherweise nicht immer eine Ansicht und sollte vermieden werden. Verwenden Sie stattdessen einen einzelnen Indexierungsvorgang, um die zu ändernde Teilmenge explizit anzugeben: _df.loc[_df.C <= df.B, 'B':'E']_.

Beispielverwendung

Betrachten Sie das folgende Beispiel:

<code class="python">df = pd.DataFrame(np.random.randn(8,8), columns=list('ABCDEFGH'), index=range(1,9))
df[df.C <= df.B] = 7654321</code>

Dieser Vorgang ändert den ursprünglichen Datenrahmen (_df_), da der Indexer df[df.C <= df .B] fungiert aufgrund seiner Verwendung beim Festlegen von Werten als Ansicht.

Fazit

Das Verständnis der Regeln für die Erstellung von Ansichten und Kopien in Pandas ist wichtig für Effektive Datenrahmenmanipulation. Indem Sie die oben dargelegten Grundsätze befolgen, können Sie unbeabsichtigte Datenänderungen vermeiden und die Datenintegrität sicherstellen.

Das obige ist der detaillierte Inhalt vonWann erstellt Pandas eine Ansicht und wann eine Kopie eines DataFrames?. 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