Heim >Backend-Entwicklung >Python-Tutorial >Wie behebe ich den „AttributeError: ‚DataFrame'-Objekt hat kein Attribut ‚append'' in Pandas?

Wie behebe ich den „AttributeError: ‚DataFrame'-Objekt hat kein Attribut ‚append'' in Pandas?

Linda Hamilton
Linda HamiltonOriginal
2024-12-25 16:30:13131Durchsuche

How to Fix the

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!

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