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 :

abc
123
456
789

Nous souhaitons ajouter la ligne suivante :

abc
101112

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 :

abc
123
456
789
101112

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.