I dati sono il pane quotidiano di un Data Scientist, quindi è fondamentale conoscere molti approcci per il caricamento dei dati per poi poterci eseguire un'analisi. Ora vedremo cinque tecniche Python per importare i tuoi dati accompagnate con esempi di codice python.
Come principiante, potresti conoscere un solo modo per caricare i dati con python (normalmente in CSV) che consiste nel leggerli usando la funzione pandas.read_csv . È una delle funzioni più mature e forti, ma altri modi sono molto interessanti da conoscere e a volte torneranno sicuramente utili.
Le modalità per leggere un file in Python sono:
Manuale
loadtxt
genfromtxt
read_csv
Pickle
Il set di dati che utilizzeremo per caricare i dati può essere trovato qui nella cartella CSV. Si chiama 100-Sales-Records.
Importiamo le librerie necessarie per testare 5 differenti modi di leggere un file con Python
Utilizzeremo i pacchetti Numpy, Pandas e Pickle, quindi importali.
import numpy as np
import pandas as pd
import pickle
Modi di leggere un file con Python 1. Funzione manuale
Questo è il più difficile, poiché devi progettare una funzione personalizzata, che può caricare i dati per te. Devi avere a che fare con i normali concetti di archiviazione di Python e usandolo devi leggere un file .csv .
Facciamolo sul file 100 Sales Records.
def load_csv(percorsofile):
data = []
col = []
checkcol = False
with open(percorsofile) as f:
for val in f.readlines():
val = val.replace("\n","")
val = val.split(',')
if checkcol is False:
col = val
checkcol = True
else:
data.append(val)
df = pd.DataFrame(data=data, columns=col)
return df
Hmmm, cos'è questo????? Non ti sembra un codice un po' complesso!!!!
Analizziamolo passo dopo passo in modo da sapere cosa sta succedendo e puoi applicare una logica simile per leggere un tuo file .csv o html o di testo .
Qui ho creato una funzione load_csv che prende come argomento il percorso del file che vuoi leggere.
Ho un elenco denominato come dati che conterrà i miei dati del file CSV e un altro elenco col che avrà i nomi delle mie colonne. Ora dopo aver ispezionato manualmente il csv, so che i nomi delle mie colonne sono nella prima riga, quindi nella mia prima iterazione, devo archiviare i dati della prima riga in col e il resto dei dati in rows .
Per controllare la prima iterazione, ho usato una variabile booleana denominata checkcol che è False, e quando è falsa nella prima iterazione, memorizza i dati della prima riga in col e quindi imposta checkcol su True, quindi lo faremo gestire l'elenco dei dati e memorizzare il resto dei valori nell'elenco dei dati .
Logica per leggere un file con Python con Funzione manuale
La logica principale qui è che ho ripetuto il file, usando readlines() una funzione in Python. Questa funzione restituisce un elenco che contiene tutte le righe all'interno di un file.
Durante la lettura dei titoli, rileva una nuova riga come \n carattere, che è il carattere di terminazione della riga, quindi per rimuoverlo, ho usato la funzione str.replace .
Poiché è un file .csv , quindi devo separare le cose in base a virgole , quindi dividerò la stringa su a , usando string.split(',') . Per la prima iterazione, memorizzerò la prima riga, che contiene i nomi delle colonne in un elenco noto come col . E poi aggiungerò tutti i miei dati nel mio elenco noto come dati .
Per leggere i dati in modo più bello, l'ho restituito come formato dataframe perché è più facile leggere un dataframe rispetto a un array numpy o all'elenco di Python.
Pro e contro di leggere un file con Python con Funzione manuale
Il vantaggio importante è che hai tutta la flessibilità e il controllo sulla struttura del file e puoi leggere in qualsiasi formato e modo desideri e archiviarlo.
Puoi anche leggere i file che non hanno una struttura standard usando la tua logica.
Svantaggi importanti sono che è complesso da scrivere soprattutto per i tipi standard di file perché possono essere letti facilmente. Devi codificare la logica che richiede tentativi ed errori.
Dovresti usarlo solo quando il file non è in un formato standard o vuoi flessibilità e leggere il file in un modo che non è disponibile attraverso le librerie.
Modi di leggere un file con Python 2. Funzione Numpy.loadtxt
Questa è una funzione incorporata in Numpy, una famosa libreria numerica in Python. È una funzione davvero semplice per caricare i dati. È molto utile per leggere dati dello stesso tipo di dati.
Quando i dati sono più complessi, è difficile leggerli usando questa funzione, ma quando i file sono facili e semplici, questa funzione è davvero potente.
Passiamo al codice.
df = np.loadtxt('convertcsv.csv', delimitator = ',')
Qui abbiamo semplicemente usato la funzione loadtxt passata in delimitatore come ',' perché questo è un file CSV.
Ora se stampiamo df , vedremo i nostri dati in array numpy abbastanza decenti che sono pronti per l'uso.
Pro e contro di leggere un file con Python con Numpy.loadtxt
Un aspetto importante dell'utilizzo di questa funzione è che è possibile caricare rapidamente i dati da un file in array numpy.
Gli svantaggi sono che non puoi avere tipi di dati diversi o righe mancanti nei tuoi dati.
Modi di leggere un file con Python 3. Numpy.genfromtxt()
Useremo il set di dati, che è '100 Sales Records.csv' che abbiamo usato nel nostro primo esempio per dimostrare che possiamo avere più tipi di dati in esso.
Passiamo al codice.
data = np.genfromtxt('100 Sales Records.csv', delimitator=',')
Nel caso in cui questa riga di codice non legga in modo corretto i tuoi dati, prova a sostituirla con questa
data = np.genfromtxt('100 Sales Records.csv', delimitator=',', dtype=None, names=True, encoding='utf-8')
Pro e contro di leggere un file con Python con Numpy.genfromtxt()
Un aspetto importante dell'utilizzo di questa funzione è che è possibile caricare rapidamente i dati da un file in array numpy.
Gli svantaggi sono che non puoi avere tipi di dati diversi o righe mancanti nei tuoi dati.
Modi di leggere un file con Python 4. Pandas.read_csv()
Pandas è una libreria di manipolazione dei dati molto popolare ed è molto comunemente usata. Una delle sue funzioni molto importanti e mature è read_csv() che può leggere qualsiasi file .csv molto facilmente e aiutarci a manipolarlo. Facciamolo sul nostro set di dati di 100 record di vendita.
Questa funzione è molto popolare per la sua facilità d'uso. Puoi confrontarlo con i nostri codici precedenti e puoi verificarlo.
>>> pdDf = pd.read_csv('100 Sales Record.csv')
>>> pdDf.head()
E indovina cosa? Con questo abbiamo già finito è davvero semplice e facile da usare. Puoi esplorare tutti gli altri parametri nei documenti ufficiali qui .
Modi di leggere un file con Python 5. Pickle
Quando i tuoi dati non sono in un buon formato leggibile, puoi usare pickle per salvarli in un formato binario. Quindi puoi ricaricarlo facilmente usando la libreria pickle.
Prenderemo il nostro file CSV di 100 record di vendita e prima lo salveremo in un formato pickle in modo da poterlo leggere.
with open('test.pkl','wb') as f:
pickle.dump(pdDf, f)
Questo creerà un nuovo file test.pkl che ha al suo interno il nostro pdDf dall'intestazione Pandas .
Ora per aprirlo usando pickle, dobbiamo solo usare la funzione pickle.load .
with open('test.pkl','rb') as f:
d4 = pickle.load(f)
d4.head()
E qui abbiamo caricato con successo i dati da un file pickle in formato pandas.DataFrame .
Ora sei a conoscenza di 5 modi diversi per caricare i file di dati in Python, che possono aiutarti in diversi modi a caricare un set di dati quando lavori nei tuoi progetti quotidiani.
Articolo conciso ed elegante, un mare racchiuso in un bicchiere.... complimenti.