Pubblicato il

csv

python

pandas


come aprire, leggere e salvare file csv con python e pandas

Ciao a tutti e benvenuti in questa guida dove vi mostreremo come lavorare con file CSV ed eseguire le operazione più comuni come leggere un file CSV, accedere a valori specifici del file CSV, e salvare il file sul file system. Ma prima di tutto vediamo che cos’è un file CSV

Che cos’è un file CSV

Prima di tutto vediamo che cos’è un file CSV. Un file CSV (comma separated values) è un file che solitamente viene usato per salvare dati strutturati. Questi file contengono valori delimitati da una virgola, ma è possibile vedere anche valori separati da tab, spazi o qualsiasi altro carattere. Per questa guida ci concentriamo su valori separati dalla virgola. I file CSV possono contenere un header che può essere considerato come un nome di una colonna. La maggior parte dei valori sono separati da una virgola con eccezione di alcuni valori che sono separati da una nuova linea. Quando incontriamo una nuova linea in un file CSV possiamo considerare quella linea come una riga di un file excel. 
Vediamo un esempio di un file .csv per capire meglio:
Nome, cognome, città
Giacomo, Bianchi,Roma,
Michele, Rossi, Venezia

Nel file in alto vediamo un file CSV con 9 valori, 3 colonne e 3 righe. Nella prima riga vediamo un header che specifica il nome delle colonne, nella seconda e terza riga vediamo i valori delimitati da una virgola. Sarebbe utile ora per noi leggere questo file CSV ed ottenere i valori in esso sotto forma di data structure python.

Come aprire un file CSV con python ed il modulo csv

Fortunatamente non vi è bisogno di installare librerie esterne dato che Python ha già a disposizione la libreria csv che può essere utilizzata per eseguire la maggior parte delle operazioni più comuni sui file CSV. Lo svantaggio però è che dobbiamo fare più lavoro manualmente. Più tardi in questa guida vedremo come aprire un file CSV con python usando una libreria chiamata pandas.

Vediamo ora come leggere un file python con la libreria csv:
import csv
    with open('file.csv') as csv_file:
        csv_reader = csv.reader(csv_file, delimiter=',')
        line_count = 0
        for row in csv_reader:
            if line_count == 0:
                print(f'Nomi delle colonne: {", ".join(row)}')
                line_count += 1
            else:
                print(f'\t{row[0]} , {row[1]} , {row[2]}.')
                line_count += 1
    print(f'File contiene {line_count} linee.')

Come vedete dobbiamo prima importare la libreria csv, poi leggere il file csv (in questo caso chiamato file.csv) e specificare quale tipo di delimitatore stiamo usando (in questa caso la virgola ‘,’). 

Come leggere valore specifico di un file CSV con python

Possiamo accedere ai valori del file CSV iterando ogni riga del file. Ogni riga che iteriamo è sotto forma di un array, quindi se vogliamo accedere ad un elemento specifico di una riga possiamo passare la posizione dell'elemento nella riga come indice. Per esempio row[0] ci ritornerà il primo elemento delle riga selezionata.

Come salvare un file CSV con python e la libreria csv

Con la libreria csv possiamo anche salvare un file .csv Vediamo come:
import csv
with open('file2.csv', mode='w') as csv_file:
    nomicolonne = ['nome', 'cognome', 'citta']
    writer = csv.DictWriter(csv_file, fieldnames=nomicolonne)
    writer.writeheader()
    writer.writerow({'nome': 'Luca', 'cognome': 'Bianchi', 'citta': 'Roma'})
    writer.writerow({'nome': 'Giovanni', 'cognome': 'Rossi', 'citta': 'Venezia'})

Come vedete prima dichiariamo un file chiamato file2.csv in modalità di scrittura. Poi passiamo i nomi delle colonne nel metodo csv.DictWriter() insieme al file da salvare. Questo metodo restituisce un writer con cui possiamo aggiungere riga per riga i valori che vogliamo. Se eseguiamo questo script nella console ci verrà salvato un file chiamato file2.csv con all’interno un header e due righe.

Come aprire un file CSV in Python con il modulo pandas

Abbiamo visto che utilizzare la libreria csv può risultare complicato, soprattutto se stiamo eseguendo un'operazione molto complicata. Fortunatamente esiste un libreria chiamata pandas, che oltre ad avere molte funzionalità utili per la manipolazione dati, ha anche molti metodi che servono proprio per aprire, leggere e salvare file csv. Vediamo come Prima di tutto bisogna installare la libreria pandas. Come sempre, questo è molto semplice. Infatti basta eseguire questa linea nel terminal.
pip install pandas

Una volta installato pandas possiamo leggere un file csv. Per fare ciò è molto semplice, possiamo vedere in basso che leggere un file csv con pandas può essere fatto in 3 righe di python.
import pandas
df = pandas.read_csv('file.csv')
print(df)

Come vedete, il codice è molto semplice. Prima importiamo la libreria pandas e poi utilizziamo il metodo read_csv() per leggere il file csv in questione. Questo metodo costruisce un cosiddetto dataframe, una struttura dati molto potente che ci permette di manipolare i dati all’interno del file in molti modi.

Come leggere un valore specifico con pandas e python

Accedere ad un valore specifico è molto facile con pandas. Se per esempio vogliamo ottenere il primo nome della colonna ‘nome’ possiamo utilizzare il seguente codice:
print(df['nome'][0])

df[“nome”] ottiene la colonna nome e [0] ottiene il primo valore della colonna.

Come salvare un dataframe pandas come file CSV

Come abbiamo visto è molto facile leggere un file csv con pandas. Quando leggiamo un file viene creato una data structure chiamata dataframe. Ora vediamo come salvare un dataframe come file csv. Questo può essere fatto con la seguente linea di codice:
df.to_csv('file3.csv')

Se eseguiamo il codice in alto verrà salvato un file chiamato test3.csv con il contenuto del dataframe df.

Ci siamo ora sapete come aprire, leggere e salvare file csv con Python!

Se hai una domanda puoi chiedere qualsiasi cosa nei commenti in basso

Grazie per aver letto questa guida su Devnews.it

Spero ti sia stata utile in qualche modo. Ti prego di supportare questa pagina mettendo mi piace alle nostre pagine social cliccando un basso, dove pubblichiamo regolermente notizie, tutorial e fatti curiosi sull'informatica. Grazie e ci vediamo alla prossima :)