Ajouter des lignes et des colonnes à un DataFrame Pandas comme un pro
Published on
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.
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
-
À 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. -
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. -
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.