Maison >développement back-end >Tutoriel Python >Comment remplacer la méthode « append » obsolète de Pandas pour ajouter des lignes à un DataFrame ?

Comment remplacer la méthode « append » obsolète de Pandas pour ajouter des lignes à un DataFrame ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-03 19:21:11710parcourir

How to Replace Pandas' Deprecated `append` Method for Adding Rows to a DataFrame?

Erreur "L'objet DataFrame" n'a pas d'attribut 'append'" : utilisation de 'concat' à la place

Dans les pandas, la méthode 'append' a été supprimé à partir de la version 2.0 et remplacé par 'concat'. Cela signifie que vous ne pouvez plus utiliser DataFrame.append() pour ajouter un dictionnaire en tant que nouvelle ligne à un DataFrame. Pour résoudre cette erreur et obtenir la fonctionnalité souhaitée, vous devez plutôt utiliser « concat ».

Utiliser 'concat'

Pour ajouter un dictionnaire en tant que nouvelle ligne à un DataFrame en utilisant 'concat', suivez ces étapes :

  1. Convertissez le dictionnaire en DataFrame avec un row :

    new_row_df = pd.DataFrame([new_row])
  2. Concaténer la nouvelle ligne DataFrame avec le DataFrame d'origine :

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

Alternative : utiliser 'loc ' (avec prudence)

Une autre option, mais avec certaines restrictions, consiste à utiliser 'loc' :

df.loc[len(df)] = new_row

Cependant, notez que cela ne fonctionne que si le nouvel index n'est pas déjà présent dans le DataFrame (généralement le cas si l'index est un RangeIndex).

Pourquoi « append » a-t-il été supprimé ?

La méthode « append » a été supprimée car elle était inefficace pour les insertions répétées. Alors que 'list.append' est O(1) à chaque étape, 'DataFrame.append' était O(n), ce qui ralentit les boucles. De plus, il a créé un nouveau DataFrame pour chaque étape, conduisant à un comportement quadratique.

Bonnes pratiques pour l'insertion répétée

Si vous devez ajouter à plusieurs reprises des lignes à un DataFrame , il est préférable de collecter les nouveaux éléments dans une liste, de la convertir en DataFrame, puis de la concaténer au DataFrame d'origine à la fin de la boucle. Cette approche évite la surcharge des opérations d'ajout répétées.

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