Fehler: „DataFrame“-Objekt hat kein „append“-Attribut
Beim Versuch, einem DataFrame-Objekt ein Wörterbuch hinzuzufügen, kann es zu Problemen kommen die Fehlermeldung „AttributeError: ‚DataFrame‘-Objekt hat kein Attribut ‚append‘.“ Während DataFrame zuvor mit der Append-Methode ausgestattet war, wurde diese in Pandas Version 2.0 entfernt.
Lösung
Um Daten an einen DataFrame anzuhängen, verwenden Sie stattdessen die Concat-Methode:
df = pd.concat([df, pd.DataFrame([new_row])], ignore_index=True)
Alternative Lösung
Wenn die index ist ein RangeIndex, das loc-Attribut kann auch verwendet werden:
df.loc[len(df)] = new_row # Note: Only use with a RangeIndex!
Warum die Änderung?
Die Append-Methode wurde entfernt, da es sich um eine ineffiziente Operation handelte. vor allem, wenn es wiederholt wird. Im Gegensatz zu list.append, das direkt ausgeführt wird, erstellt das Anhängen von DataFrame einen neuen DataFrame. Dadurch wurde die zeitliche Komplexität wiederholter Einfügevorgänge quadratisch.
Best Practices für wiederholte Einfügungen
Anstatt wiederholt append oder concat zu verwenden, sammeln Sie die neuen Elemente in einer Liste und konvertieren Sie sie fügen Sie sie am Ende der Schleife in einen DataFrame ein. Verketten Sie dann den neuen DataFrame mit dem Original.
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 ist „DataFrame.append' veraltet und wie füge ich Zeilen zu einem Pandas DataFrame hinzu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!