Skip to content
Tutoriels
Python
Append DataFrame Pandas: How to Add Rows and Columns Like a Pro

Ajouter des lignes et des colonnes à un DataFrame Pandas comme un pro

Pandas, une bibliothèque Python open-source très efficace, est un outil incontournable pour les scientifiques des données du monde entier. Elle se distingue par sa flexibilité et sa facilité de manipulation des données structurées. Le DataFrame, l'une des structures de données fondamentales de Pandas, est largement utilisé en raison de sa capacité à gérer efficacement de grands ensembles de données.

Une tâche courante lors de l'utilisation de DataFrames Pandas consiste à ajouter des données. Cette opération peut impliquer l'ajout de lignes, l'ajout de colonnes ou même l'ajout de DataFrames entiers. Cela peut sembler assez difficile au début, mais une fois que vous maîtrisez la fonction append, c'est un jeu d'enfant. Alors plongeons dans la façon dont nous pouvons exploiter la fonction d'ajout de DataFrame dans Pandas.

Vous souhaitez créer rapidement une visualisation de données à partir d'un DataFrame Pandas en utilisant zéro code ?

PyGWalker est une bibliothèque Python pour l'analyse exploratoire des données avec visualisation. PyGWalker (opens in a new tab) peut simplifier votre flux de travail d'analyse de données et de visualisation de données dans Jupyter Notebook en transformant votre dataframe pandas (et tableau de données polars) en une interface utilisateur de type Tableau pour l'exploration visuelle.

PyGWalker pour la visualisation de données (opens in a new tab)

Fonction d'ajout de DataFrame Pandas

La fonction d'ajout de DataFrame Pandas est utilisée pour ajouter des lignes d'autres objets DataFrame et renvoie un nouveau DataFrame. Il est essentiel de comprendre que cette fonction ne modifie pas le DataFrame d'origine mais en crée un nouveau qui combine les données d'origine et les données ajoutées.

Syntaxe de la fonction append() dans Pandas

La syntaxe de base de la fonction append() est la suivante :

DataFrame.append(other, ignore_index=False, sort=False)
  • other : Il peut s'agir d'un DataFrame, d'une Series, d'un dictionnaire ou d'une liste de ces éléments, définissant les données à ajouter.
  • ignore_index : Si True, l'index du DataFrame résultant sera étiqueté 0, 1, ..., n. La valeur par défaut est False.
  • sort : Il définit s'il faut trier l'axe de non-concaténation. La valeur par défaut est False.

Voyons la fonction d'ajout en action à travers un exemple.

Ajouter une ligne à un DataFrame

import pandas as pd
 
df1 = pd.DataFrame({'A': ['A0', 'A1', 'A2'],
                    'B': ['B0', 'B1', 'B2'],
                    'C': ['C0', 'C1', 'C2'],
                    'D': ['D0', 'D1', 'D2']},
                    index=[0, 1, 2])
 
df2 = pd.DataFrame({'A': 'A3',
                    'B': 'B3',
                    'C': 'C3',
                    'D': 'D3'},
                    index=[3])
 
df1 = df1.append(df2)
 
print(df1)

Dans l'exemple ci-dessus, df1 est le DataFrame d'origine et df2 lui est ajouté. Le DataFrame résultant inclura toutes les lignes de df1 et df2.

Ajouter plusieurs DataFrames

L'ajout de plusieurs DataFrames est également un processus simple. La fonction append peut prendre une liste de DataFrames à ajouter ensemble. Considérez l'exemple suivant :

df3 = pd.DataFrame({'A': 'A4',
                    'B': 'B4',
                    'C': 'C4',
                    'D': 'D4'},
                    index=[4])
 
df1 = df1.append([df2, df3])
 
print(df1)

Dans cet exemple, nous ajoutons simultanément df2 et df3 à df1.

DataFrame Append vs Concat in Pandas

Vous vous demandez peut-être quelle est la différence entre les fonctions append() et concat() dans Pandas, car toutes deux semblent servir un but similaire. Alors que append() est essentiellement un cas spécifique de concat(), la fonction concat() offre plus de flexibilité, telle que la possibilité d'ajouter des données le long de l'axe des lignes (axis=0) ou de l'axe des colonnes (axis=1). Cette fonctionnalité plus étendue signifie que concat() peut être un outil plus puissant pour des tâches de manipulation de données plus complexes. Cependant, pour des tâches d'ajout simples, append() est souvent amplement suffisant.

Ajouter une colonne à un DataFrame Pandas

Ajouter une colonne à un DataFrame peut être réalisé en attribuant simplement les données à une nouvelle colonne dans le DataFrame. Par exemple :

df1['E'] = ['E0', 'E1', 'E2', 'E3', 'E4']
print(df1)

Dans cet exemple, une nouvelle colonne 'E' est ajoutée à df1. La nouvelle colonne est initialisée avec les valeurs 'E0', 'E1', 'E2', 'E3', 'E4'.

Ajouter la sortie d'une boucle for à un DataFrame Python

Vous pouvez également ajouter la sortie d'une boucle for à un DataFrame. Cela peut être utile dans des scénarios où vous traitez ou générez des données dans une boucle. Jetons un coup d'œil à un exemple :

df = pd.DataFrame(columns = ['A', 'B', 'C'])
 
for i in range(5):
    df = df.append({'A': i, 'B': i*2, 'C': i+3}, ignore_index=True)
 
print(df)

Dans cet exemple, à chaque itération de la boucle, une nouvelle ligne est créée et ajoutée au DataFrame df.

Bonnes pratiques pour ajouter des lignes de DataFrame dans Pandas

Bien que la fonction append() soit un outil facile à utiliser pour ajouter des données à un DataFrame, elle n'est peut-être pas toujours la plus efficace. Cela s'explique par le fait que append() renvoie toujours un nouveau DataFrame, et dans le cas de l'ajout de lignes dans une boucle, cela peut entraîner une consommation significative de mémoire.

Dans les scénarios où vous devez ajouter un grand nombre de lignes, il est souvent plus efficace de créer une liste des lignes, puis de créer un DataFrame en une seule fois :

rows_list = []
for i in range(100000):
    dict1 = {'A': i, 'B': i*2, 'C': i+3}
    rows_list.append(dict1)
 
df = pd.DataFrame(rows_list)

Dans cet exemple, le DataFrame n'est créé qu'une seule fois, ce qui permet d'économiser de la mémoire et du temps de traitement.

Comment fusionner des DataFrames Pandas en utilisant append()

Alors que les fonctions merge() et join() sont spécifiquement conçues pour fusionner ou joindre des DataFrames, la fonction append() peut également accomplir cela si les DataFrames ont les mêmes colonnes:

df1 = df1.append(df2, ignore_index=True)

Dans cet exemple, df2 est ajouté à la fin de df1, fusionnant ainsi les deux DataFrames.

Conclusion

Dans cet article, nous avons couvert beaucoup de sujets sur l'utilisation de la fonction append() dans Pandas pour ajouter des lignes et des colonnes à un DataFrame, comment ajouter plusieurs DataFrames, comment ajouter une colonne et comment ajouter une sortie à partir d'une boucle for. N'oubliez pas que bien que append() soit pratique et facile à utiliser, dans le cas de grands ensembles de données, d'autres méthodes pourraient être plus efficaces.

Questions fréquemment posées

  1. À quoi sert la fonction append() dans Pandas DataFrame?

    La fonction append() dans Pandas DataFrame est utilisée pour ajouter des lignes d'autres objets DataFrame à la fin du DataFrame donné, renvoyant ainsi un nouvel objet DataFrame. Elle ne modifie pas le DataFrame original; à la place, un nouveau est créé qui inclut les données originales et ajoutées.

  2. Peut-on ajouter plusieurs DataFrames en utilisant append()?

    Oui, on peut ajouter plusieurs DataFrames en utilisant la fonction append(). Elle peut prendre une liste de DataFrames à ajouter ensemble.

  3. Recommande-t-on d'utiliser la méthode append() pour ajouter des données à un DataFrame?

    Bien que la fonction append() soit facile à utiliser et convient à de nombreux cas, pour de grands DataFrames, cela pourrait ne pas être la méthode la plus efficace car elle renvoie toujours un nouveau DataFrame. Au lieu de cela, envisagez de créer une liste de lignes ou de colonnes, puis de convertir cette liste en DataFrame en une seule fois.