Heim >Backend-Entwicklung >Python-Tutorial >Wie behebe ich den „AttributeError: ‚DataFrame'-Objekt hat kein Attribut ‚append'' in Pandas?
AttributeError: „DataFrame“-Objekt fehlt „Append“-Methode
Beim Versuch, ein Wörterbuch in einen DataFrame zu integrieren, kann es vorkommen, dass „ AttributeError: Das „DataFrame“-Objekt hat kein Attribut „Append“. Fehler. Obwohl DataFrame über eine „Append“-Methode verfügt, wurde diese in Pandas 2.0 entfernt.
Lösung:
Um dieses Problem zu beheben, verwenden Sie die „Concat“-Methode als Ersatz:
df = pd.concat([df, pd.DataFrame([new_row])], ignore_index=True)
Alternativ können Sie, wenn Ihr DataFrame-Index ein RangeIndex ist, den „loc“ verwenden. Methode:
df.loc[len(df)] = new_row # Only applicable with RangeIndex
Begründung für die Entfernung:
Die Entfernung der „Append“-Methode wurde durch ihre Ineffizienz bei wiederholten Einfügungsszenarien motiviert. Im Gegensatz zur „list.append“-Funktion von Python, die direkt vor Ort ausgeführt wird, erstellt die „append“-Methode von Pandas einen neuen DataFrame. Dieser Unterschied führt zu einer zeitlichen Komplexität von O(n) für das „Anhängen“ von Pandas, was es ineffizient macht.
Alternativer Ansatz:
Wenn Sie wiederholt hinzufügen müssen Vermeiden Sie die mehrfache Verwendung von „append“ oder „concat“. Sammeln Sie stattdessen neue Zeilen in einer Liste und konvertieren Sie sie in einen DataFrame, sobald die Schleife abgeschlossen ist. Anschließend verketten Sie den erweiterten DataFrame mit dem Original. Dieser Ansatz gewährleistet eine optimale Leistung.
Zum Beispiel:
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 vonWie behebe ich den „AttributeError: ‚DataFrame'-Objekt hat kein Attribut ‚append'' in Pandas?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!