Szenario:
Bei der Auswahl einer Teilmenge eines Datenrahmens kommt es häufig vor um auf Code zu stoßen, der mithilfe der Methode .copy() explizit eine Kopie des übergeordneten DataFrame erstellt. Es stellt sich die Frage: Warum ist das notwendig?
Begründung:
Pandas-Datenrahmen verhalten sich anders als herkömmliche Arrays in Programmiersprachen. Beim Indizieren eines Pandas-DataFrames (z. B. my_dataframe[features_list]) erstellt der zurückgegebene Wert keine neue Kopie, sondern gibt eine Ansicht oder einen Verweis auf den ursprünglichen DataFrame zurück. Alle an dieser Ansicht vorgenommenen Änderungen wirken sich direkt auf den ursprünglichen DataFrame aus.
Beispiel:
Bedenken Sie den folgenden Code:
df = pd.DataFrame({'x': [1, 2]}) df_view = df[0:1] # Returns a view of the first row df_view['x'] = -1 # Check the original DataFrame print(df)
Ausgabe:
x 0 -1 1 2
Wie Sie sehen können, hat die Änderung von df_view auch den ursprünglichen df-DataFrame geändert.
Lösung:
Um solche unbeabsichtigten Folgen zu verhindern, wird dies empfohlen um mit der Methode .copy() eine Kopie des DataFrame zu erstellen, bevor Sie ihn ändern. Dadurch wird sichergestellt, dass an der Kopie vorgenommene Änderungen keine Auswirkungen auf den ursprünglichen DataFrame haben.
Überarbeiteter Code:
df = pd.DataFrame({'x': [1, 2]}) df_copy = df[0:1].copy() # Makes a copy of the first row df_copy['x'] = -1 # Check the original DataFrame print(df)
Ausgabe:
x 0 1 1 2
In diesem Fall bleibt df unverändert.
Vorteile des Kopierens von Datenrahmen:
Das obige ist der detaillierte Inhalt vonWarum sollte ich .copy() verwenden, wenn ich Teilmengen von Pandas-DataFrames auswähle?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!