Pandas : Ajouter une ligne à la fin d'un DataFrame
Cet article présente comment ajouter une ligne à la fin d'un Pandas DataFrame
Avec Pandas, il n’y a pas de méthode qui permet d’ajouter seulement une ligne (une liste) à un DataFrame. Il faut donc créer un nouveau DataFrame avec la ligne à ajouter et concaténer les deux DataFrames. Si vous comptez ajouter ligne par ligne, il serait peut-être plus judicieux d’utiliser initialement un dictionnaire, des listes ou bien des tableaux numpy.
Ajouter une ligne au début ou à la fin d’un DataFrame
Avec les fonctions concat, append, on peut vite se perdre et ne plus savoir comment ajouter une ligne à un dataframe.
Il y a en effet plusieurs moyens de faire cela. Ici, je vous propose un exemple simple avec le dataframe suivant :
a | b | c |
---|---|---|
1 | 2 | 3 |
4 | 5 | 6 |
7 | 8 | 9 |
Nous souhaitons ajouter la ligne suivante :
a | b | c |
---|---|---|
10 | 11 | 12 |
Avec la fonction append()
Nous pouvons ajouter une ligne à un DataFrame avec la fonction append()
. Cette fonction va fusionner deux dataframes et ajouter les lignes du deuxième dataframe à la fin du premier.
Nous allons donc créer un DataFrame avec la ligne à ajouter et le fusionner avec le DataFrame initial :
import pandas as pd
# Création du DataFrame initial
df = pd.DataFrame([[1,2,3], [4,5,6], [7,8,9]], columns=['a','b','c'])
# Création du DataFrame contenant la ligne à ajouter
df2 = pd.DataFrame([[10,11,12]], columns=['a','b','c'])
# Fusion des deux DataFrame
df = df.append(df2, ignore_index=True)
# Affichage du résultat
print(df)
Le résultat de ce code est le suivant :
a | b | c |
---|---|---|
1 | 2 | 3 |
4 | 5 | 6 |
7 | 8 | 9 |
10 | 11 | 12 |
Avec la fonction concat()
La fonction concat()
permet également de fusionner deux DataFrames.
Pour en apprendre plus sur la différence entre append()
et concat()
:
Pandas : concat vs append
Nous allons donc créer un DataFrame avec la ligne à ajouter et le fusionner avec le DataFrame initial :
import pandas as pd
# Création du DataFrame initial
df = pd.DataFrame([[1,2,3], [4,5,6], [7,8,9]], columns=['a','b','c'])
# Création du DataFrame contenant la ligne à ajouter
df2 = pd.DataFrame([[10,11,12]], columns=['a','b','c'])
# Fusion des deux DataFrame
df = pd.concat([df, df2], ignore_index=True)
# Affichage du résultat
print(df)
Le résultat sera le même que précédemment.