Maison >développement back-end >Tutoriel Python >Comment corriger l'erreur 'AttributeError : l'objet 'DataFrame' n'a pas d'attribut 'append'' dans Pandas ?
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!