Python: elaborazione dei dati CSV
La lettura dei dati da CSV (valori separati da virgola) è una necessità fondamentale in Data Science. Spesso otteniamo dati da varie fonti che possono essere esportati in formato CSV in modo che possano essere utilizzati da altri sistemi. La libreria Panadas fornisce funzionalità che consentono di leggere il file CSV per intero e in parte solo per un gruppo selezionato di colonne e righe.
Input come file CSV
Il file csv è un file di testo in cui i valori nelle colonne sono separati da una virgola. Consideriamo i seguenti dati presenti nel file denominatoinput.csv.
È possibile creare questo file utilizzando il blocco note di Windows copiando e incollando questi dati. Salva il file comeinput.csv utilizzando l'opzione Salva come tutti i file (*. *) nel blocco note.
id,name,salary,start_date,dept
1,Rick,623.3,2012-01-01,IT
2,Dan,515.2,2013-09-23,Operations
3,Tusar,611,2014-11-15,IT
4,Ryan,729,2014-05-11,HR
5,Gary,843.25,2015-03-27,Finance
6,Rasmi,578,2013-05-21,IT
7,Pranab,632.8,2013-07-30,Operations
8,Guru,722.5,2014-06-17,Finance
Leggere un file CSV
Il read_csvla funzione della libreria panda viene utilizzata per leggere il contenuto di un file CSV nell'ambiente python come un DataFrame panda. La funzione può leggere i file dal sistema operativo utilizzando il percorso corretto del file.
import pandas as pd
data = pd.read_csv('path/input.csv')
print (data)
Quando eseguiamo il codice precedente, produce il seguente risultato. Si noti come una colonna aggiuntiva che inizia con zero come indice è stata creata dalla funzione.
id name salary start_date dept
0 1 Rick 623.30 2012-01-01 IT
1 2 Dan 515.20 2013-09-23 Operations
2 3 Tusar 611.00 2014-11-15 IT
3 4 Ryan 729.00 2014-05-11 HR
4 5 Gary 843.25 2015-03-27 Finance
5 6 Rasmi 578.00 2013-05-21 IT
6 7 Pranab 632.80 2013-07-30 Operations
7 8 Guru 722.50 2014-06-17 Finance
Lettura di righe specifiche
Il read_csvLa funzione della libreria pandas può essere utilizzata anche per leggere alcune righe specifiche per una data colonna. Sezioniamo il risultato dalla funzione read_csv utilizzando il codice mostrato di seguito per le prime 5 righe per la colonna denominata stipendio.
import pandas as pd
data = pd.read_csv('path/input.csv')
# Slice the result for first 5 rows
print (data[0:5]['salary'])
Quando eseguiamo il codice precedente, produce il seguente risultato.
0 623.30
1 515.20
2 611.00
3 729.00
4 843.25
Name: salary, dtype: float64
Lettura di colonne specifiche
Il read_csvla funzione della libreria pandas può essere utilizzata anche per leggere alcune colonne specifiche. Usiamo il metodo di indicizzazione multi-assi chiamato.loc()per questo scopo. Scegliamo di visualizzare la colonna dello stipendio e del nome per tutte le righe.
import pandas as pd
data = pd.read_csv('path/input.csv')
# Use the multi-axes indexing funtion
print (data.loc[:,['salary','name']])
Quando eseguiamo il codice precedente, produce il seguente risultato.
salary name
0 623.30 Rick
1 515.20 Dan
2 611.00 Tusar
3 729.00 Ryan
4 843.25 Gary
5 578.00 Rasmi
6 632.80 Pranab
7 722.50 Guru
Lettura di colonne e righe specifiche
Il read_csvLa funzione della libreria pandas può essere utilizzata anche per leggere alcune colonne specifiche e righe specifiche. Usiamo il metodo di indicizzazione multi-assi chiamato.loc()per questo scopo. Scegliamo di visualizzare la colonna dello stipendio e del nome per alcune righe.
import pandas as pd
data = pd.read_csv('path/input.csv')
# Use the multi-axes indexing funtion
print (data.loc[[1,3,5],['salary','name']])
Quando eseguiamo il codice precedente, produce il seguente risultato.
salary name
1 515.2 Dan
3 729.0 Ryan
5 578.0 Rasmi
Lettura di colonne specifiche per un intervallo di righe
Il read_csvLa funzione della libreria pandas può anche essere utilizzata per leggere alcune colonne specifiche e un intervallo di righe. Usiamo il metodo di indicizzazione multi-assi chiamato.loc()per questo scopo. Scegliamo di visualizzare la colonna dello stipendio e del nome per alcune righe.
import pandas as pd
data = pd.read_csv('path/input.csv')
# Use the multi-axes indexing funtion
print (data.loc[2:6,['salary','name']])
Quando eseguiamo il codice precedente, produce il seguente risultato.
salary name
2 611.00 Tusar
3 729.00 Ryan
4 843.25 Gary
5 578.00 Rasmi
6 632.80 Pranab