Maison >développement back-end >Tutoriel Python >Comment corriger l'erreur 'AttributeError : l'objet 'DataFrame' n'a pas d'attribut 'append'' dans Pandas ?

Comment corriger l'erreur 'AttributeError : l'objet 'DataFrame' n'a pas d'attribut 'append'' dans Pandas ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-25 16:30:13135parcourir

How to Fix the

AttributeError : l'objet 'DataFrame' ne dispose pas de la méthode 'Append'

Lorsque vous essayez d'incorporer un dictionnaire dans un DataFrame, vous pouvez rencontrer le message " AttributeError : l'objet 'DataFrame' n'a pas d'erreur d'attribut 'append'". Bien que DataFrame possède une méthode "append", elle a été éliminée dans pandas 2.0.

Résolution :

Pour corriger ce problème, utilisez la méthode "concat" comme méthode remplacement :

df = pd.concat([df, pd.DataFrame([new_row])], ignore_index=True)

Alternativement, si votre index DataFrame est un RangeIndex, vous pouvez utiliser le "loc" method :

df.loc[len(df)] = new_row # Only applicable with RangeIndex

Justification de la suppression :

La suppression de la méthode "append" a été motivée par son inefficacité dans les scénarios d'insertion répétés. Contrairement à la fonction "list.append" de Python, qui fonctionne sur place, la méthode "append" de pandas construit un nouveau DataFrame. Cette différence se traduit par une complexité temporelle de O(n) pour « l'ajout » des pandas, ce qui le rend inefficace.

Approche alternative :

Si vous devez ajouter à plusieurs reprises éléments, évitez d'utiliser "append" ou "concat" plusieurs fois. Au lieu de cela, accumulez de nouvelles lignes dans une liste et convertissez-la en DataFrame une fois la boucle terminée. Ensuite, concaténez le DataFrame étendu à l’original. Cette approche garantit des performances optimales.

Par exemple :

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!

Déclaration:
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