Maison > développement back-end > Tutoriel Python > Pourquoi Pandas génère-t-il une erreur « L'objet « DataFrame » n'a aucun attribut « append » » ?

Pourquoi Pandas génère-t-il une erreur « L'objet « DataFrame » n'a aucun attribut « append » » ?

Barbara Streisand
Libérer: 2024-12-02 15:40:10
original
564 Les gens l'ont consulté

Why Does Pandas Throw a

Erreur : l'objet 'DataFrame' n'a pas d'attribut 'Append'

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)
Copier après la connexion

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)
Copier après la connexion

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
Copier après la connexion

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])
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal