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
La méthode prise en charge consiste à créer un DataFrame d’une ligne puis à le combiner avec concat().
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 concat()
La fonction concat() permet également de fusionner deux DataFrames.
DataFrame.append() a été supprimée dans pandas 2.0 : les anciens exemples qui l’utilisent doivent être remplacés par concat().
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 DataFrame obtenu contient la nouvelle ligne à l’index 3.