Description du problème :
Lors de la tentative d'ajout d'un dictionnaire vers un objet DataFrame, l'erreur « L'objet 'DataFrame' n'a pas d'attribut 'append' » est rencontrée. Malgré l'attente selon laquelle DataFrame dispose d'une méthode « append », l'erreur persiste.
Exemple de code :
df = pd.DataFrame(df).append(new_row, ignore_index=True)
Raison derrière l'erreur :
Depuis la version 2.0 de pandas, la méthode append a été supprimée. Elle a été remplacée par la méthode concat pour la majorité des cas d'utilisation.
Approche alternative utilisant Concat :
df = pd.concat([df, pd.DataFrame([new_row])], ignore_index=True)
Approche alternative utilisant Loc (pour RangeIndex uniquement) :
Si l'index du DataFrame est un RangeIndex, la méthode loc peut être utilisé.
df.loc[len(df)] = new_row
Pourquoi Append a été supprimé :
La suppression d'append a été provoquée par l'utilisation abusive fréquente de la méthode par les nouveaux utilisateurs de pandas. Contrairement à la méthode append dans les listes Python, pandas append ne modifie pas le DataFrame existant ; au lieu de cela, il crée un nouveau DataFrame, ce qui entraîne des opérations inefficaces lorsqu'elles sont effectuées à plusieurs reprises.
Meilleures pratiques pour les insertions répétées :
Si plusieurs insertions sont nécessaires, elles doivent être collectées dans une liste et converti en DataFrame à la fin, qui peut ensuite être concaténé avec le DataFrame d'origine :
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])
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!