Heim >Backend-Entwicklung >Python-Tutorial >Warum wirft Pandas den Fehler „‚DataFrame'-Objekt hat kein Attribut ‚anhängen'' aus?
Problembeschreibung:
Beim Versuch, a anzuhängen Wörterbuch zu einem DataFrame-Objekt hinzufügt, wird der Fehler „Das ‚DataFrame‘-Objekt hat kein Attribut ‚append‘“ angezeigt. Trotz der Erwartung, dass DataFrame über eine „Anhänge“-Methode verfügt, bleibt der Fehler bestehen.
Codebeispiel:
df = pd.DataFrame(df).append(new_row, ignore_index=True)
Grund für den Fehler:
Ab Pandas Version 2.0 wurde die Append-Methode entfernt. Sie wurde für die meisten Anwendungsfälle durch die Concat-Methode ersetzt.
Alternativer Ansatz mit Concat:
df = pd.concat([df, pd.DataFrame([new_row])], ignore_index=True)
Alternativer Ansatz mit Loc (für Nur RangeIndex):
Wenn der Index des DataFrame ein RangeIndex ist, kann die loc-Methode ein RangeIndex sein verwendet.
df.loc[len(df)] = new_row
Warum Append entfernt wurde:
Die Entfernung von append wurde durch den häufigen Missbrauch der Methode durch neue Pandas-Benutzer veranlasst. Im Gegensatz zur Append-Methode in Python-Listen ändert Pandas Append nicht den vorhandenen DataFrame. Stattdessen wird ein neuer DataFrame erstellt, was bei wiederholter Ausführung zu ineffizienten Vorgängen führt.
Best Practice für wiederholte Einfügungen:
Wenn mehrere Einfügungen erforderlich sind, sollten diese erfasst werden in einer Liste und am Ende in einen DataFrame umgewandelt, der dann mit dem ursprünglichen DataFrame verkettet werden kann:
lst = [] for new_row in items_generation_logic: lst.append(new_row) # create extension df_extended = pd.DataFrame(lst, columns=['A', 'B', 'C']) # concatenate to original out = pd.concat([df, df_extended])
Das obige ist der detaillierte Inhalt vonWarum wirft Pandas den Fehler „‚DataFrame'-Objekt hat kein Attribut ‚anhängen'' aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!