Pandas Appendice au CSV
Python Pandas nous permet de manipuler et de gérer les données efficacement. Nous pouvons créer et gérer des DataFrames et effectuer diverses opérations sur ces derniers. Il nous permet également de lire un fichier CSV ou excel externe, d’importer des DataFrames, de travailler dessus et de les sauvegarder. Une caractéristique intéressante de la sauvegarde des données est le mode append
utilisant le paramètre a
, qui peut être utilisé pour ajouter des données à un fichier CSV déjà existant.
Cet article présente la façon d’ajouter des données au CSV en utilisant des Pandas.
import pandas as pd
df = pd.DataFrame([[6, 7, 8], [9, 12, 14], [8, 10, 6]], columns=["a", "b", "c"])
print(df)
df.to_csv(r"C:\Test\data.csv", index=False)
df2 = pd.DataFrame([[4, 1, 3], [6, 7, 2], [5, 9, 4]], columns=["a", "b", "c"])
print(df2)
df2.to_csv(r"C:\Test\data.csv", mode="a", header=False, index=False)
Production :
a b c
0 6 7 8
1 9 12 14
2 8 10 6
a b c
0 4 1 3
1 6 7 2
2 5 9 4
Le fichier CSV enregistré contiendra les deux DataFrames avec les données du df2
annexées au fichier original.
Nous pouvons également ajouter une autre caractéristique à ce code. Avec seulement quelques lignes de code, nous pouvons nous assurer que la fonction to_csv()
créera un fichier s’il n’existe pas et sautera les en-têtes s’il existe déjà. Nous utiliserons l’instruction with
pour la gestion des exceptions et open()
pour ouvrir un fichier.
import pandas as pd
df = pd.DataFrame([[6, 7, 8], [9, 12, 14], [8, 10, 6]], columns=["a", "b", "c"])
print(df)
df.to_csv(r"C:\Test\data.csv", index=False)
df2 = pd.DataFrame([[4, 1, 3], [6, 7, 2], [5, 9, 4]], columns=["a", "b", "c"])
print(df2)
with open(r"C:\Test\data.csv", mode="a") as f:
df2.to_csv(f, header=f.tell() == 0, index=False)
Production :
a b c
0 6 7 8
1 9 12 14
2 8 10 6
a b c
0 4 1 3
1 6 7 2
2 5 9 4
La méthode tell()
de l’objet fichier retourne la position actuelle du curseur. Par conséquent, si le fichier est vide ou n’existe pas, f.tell==0
est True, de sorte que header
est mis à True
; sinon, header
est mis à False
.
Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.
LinkedIn