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