Pandas Aggiungi a CSV

Manav Narula 15 febbraio 2024
Pandas Aggiungi a CSV

Python Pandas ci consente di manipolare e gestire i dati in modo efficiente. Possiamo creare e gestire DataFrame ed eseguire varie operazioni su di essi. Ci consente inoltre di leggere un file CSV o excel esterno, importare DataFrame, lavorarci sopra e salvarli nuovamente. Una caratteristica interessante nel salvataggio dei dati è la modalità append utilizzando il parametro a, che può essere utilizzato per aggiungere dati a un file CSV già esistente.

Questo articolo introdurrà come aggiungere dati a CSV utilizzando 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)

Produzione:

   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

i pandas vengono aggiunti a csv

Il file CSV salvato avrà entrambi i DataFrame con i dati di df2 aggiunti al file originale.

C’è anche un’altra funzionalità aggiuntiva che possiamo aggiungere a questo codice. Con poche righe di codice, possiamo assicurarci che la funzione to_csv() crei un file se non esiste e salti le intestazioni se esiste già. Useremo l’istruzione with per la gestione delle eccezioni e open() per aprire un file.

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)

Produzione:

   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

Il metodo tell() dell’oggetto file restituisce la posizione corrente del cursore. Pertanto, se il file è vuoto o non esiste, f.tell==0 è True, quindi header è impostato su True; altrimenti, header è impostato su False.

Autore: Manav Narula
Manav Narula avatar Manav Narula avatar

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