Maison >développement back-end >Tutoriel Python >Pourquoi « DataFrame.append » est-il obsolète et comment ajouter des lignes à un DataFrame Pandas ?
Erreur : l'objet 'DataFrame' n'a pas d'attribut 'append'
Lors de la tentative d'ajout d'un dictionnaire à un objet DataFrame, les utilisateurs peuvent rencontrer le message d'erreur "AttributeError : l'objet 'DataFrame' n'a pas d'attribut 'append'." Alors que DataFrame était auparavant équipé de la méthode append, elle a été supprimée dans la version 2.0 de pandas.
Solution
Pour ajouter des données à un DataFrame, utilisez plutôt la méthode concat :
df = pd.concat([df, pd.DataFrame([new_row])], ignore_index=True)
Alternative Solution
Si l'index est un RangeIndex, l'attribut loc peut également être utilisé :
df.loc[len(df)] = new_row # Note: Only use with a RangeIndex!
Pourquoi le changement ?
La méthode append a été supprimée car il s’agissait d’une opération inefficace, surtout lorsqu’elle était répétée. Contrairement à list.append, qui fonctionne sur place, l'ajout de DataFrame a créé un nouveau DataFrame. Cela rendait les opérations d'insertion répétées quadratiques en termes de complexité temporelle.
Meilleures pratiques pour les insertions répétées
Au lieu d'utiliser append ou concat à plusieurs reprises, collectez les nouveaux éléments dans une liste et convertissez-les. vers un DataFrame à la fin de la boucle. Ensuite, concaténez le nouveau DataFrame à l'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])
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!