Pandas chunksize

Pandas chunksize
I data scientist o i professionisti devono spesso gestire set di dati le cui dimensioni sono molto maggiori della memoria del loro sistema locale. È difficile capire come gestire efficacemente la memoria consentendo l'uso più efficace dei dati. Quando si tratta di un grande blocco di dati che non si adatta alla memoria, è possibile dividere i dati in porzioni più piccole utilizzando l'opzione Chunksize di Pandas. Scegliendo questa opzione, viene prodotto un oggetto iteratore che può essere usato per iterare attraverso i vari blocchi e effettuare filtrazioni o analisi allo stesso modo in cui si caricherà l'intero set di dati.

Come caricare dati di grandi dimensioni utilizzando la dimensione del pezzo di panda

Panda è uno strumento open source potente e intuitivo per l'analisi dei dati basata su Python che consente l'importazione e la visualizzazione dei dati in vari formati, come .Tsv, .CSV, .db, e .file txt. Soltanto ".I file CSV ”verranno utilizzati nei seguenti esempi, sebbene la tecnica sia la stessa per altri formati di file. La funzione read_csv () verrà utilizzata per leggere i file CSV.

Parametri:

FILEPATH_OR_BUFFERSTR: È possibile utilizzare un percorso di stringa valido. Inoltre, un URL potrebbe essere nella stringa. Gli schemi URL accettabili sono FTP, S3, HTTP, GS e file. Dovrebbe esserci un host per gli URL di file. Ecco un esempio di un file locale: file:/localhost/percorso/to/tabella.CSV.

IteratorBool: Restituisce un oggetto TextFileReader per iterare tramite il file o per recuperare i blocchi usando get_chunk ().

chunksize: Accetta int; È un parametro opzionale. Per iterazione, restituisce un oggetto TextFileReader.

L'argomento chunksize della funzione read_csv () è quello in cui siamo interessati a questo articolo. Tecnicamente, Chunksize si riferisce a quante righe al secondo Panda leggono da un file. Possiamo dire che le prime 100 righe saranno caricate da panda se la chunksize è specificata come 100. L'oggetto restituito è un textfileReader che deve essere iterato per recuperare i dati.

Esempio n. 1: caricare i dati utilizzando la funzione read_csv () senza chunksize

Per questo esempio, scaricheremo un set di dati con a .Estensione del file CSV da qualsiasi sito Web open source. È possibile scaricare il set di dati richiesto da diversi siti Web su Internet. Per caricare un file in Panda, importare prima la libreria Pandas. Dopo aver importato i panda, utilizzeremo la funzione read_csv () per caricare il file nel nostro ambiente corrente. Un file CSV viene importato in formato DataFrame usando la funzione Pandas read_csv ().

Noterai che insieme ai panda abbiamo anche importato una libreria PPRINT perché le strutture di dati possono essere stampate in modo comprensibile e attraente utilizzando il modulo Python PPRINT. Dopo aver importato i moduli, abbiamo caricato il nostro .File CSV inserendo il nome del file insieme all'estensione del file all'interno del PD.funzione read_csv (). Per visualizzare le nostre colonne all'interno del frame dati, abbiamo usato il PD.attributo colonne. Queste etichette di colonne ci consentono di accedere agli elementi di un frame dati ed eseguire la manipolazione dei dati. I "panda. DataFrame.L'attributo delle colonne ”viene utilizzato per ottenere le singole etichette di colonne da un frame dati. IL .L'attributo Shape può essere utilizzato per vedere il numero di colonne e righe nel nostro telaio di dati.

Il valore "90836" è il numero totale di righe nel nostro telaio di dati, come abbiamo visto sopra, ci sono dieci colonne nel nostro frame dati, i.e., "giudizi".

Esempio n. 2: caricare una grande quantità di dati usando chunksize nella funzione read_csv ()

In questo esempio, scaricheremo un altro set di dati da Internet. La stessa funzione read_csv () verrà utilizzata per caricare il file. Ma questa volta, specificheremo un parametro "chunksize" all'interno della funzione. Prima di utilizzare la nostra funzione read_csv (), importeremo le librerie Panda e PPRINT.

Visingiamo il numero totale di colonne e righe nel nostro file di set di dati senza utilizzare un parametro chunksize.

Leggiamo il set di dati fornito nell'esempio precedente e presentato i suoi dettagli. Le righe e le colonne restituite dall'attributo "forma" sono rispettivamente 5704247 e 5. Utilizzando l'attributo "Info", mostriamo anche dettagli sulle righe e nelle colonne del set di dati.

Come possiamo vedere, questo set di dati ha 5704247 righe e l'elaborazione di enormi set di dati utilizza molta RAM del computer. Il parametro Chunksize in queste circostanze può essere utilizzato per salvare le nostre risorse.

Un oggetto TextFileReader viene restituito usando la funzione Chunksize all'interno della funzione read_csv (). Quando il parametro chunksize viene passato alla funzione read_csv (), viene creato un lettore di textfileReader. Il file originale può essere letto in pezzi usando questo oggetto a file aperto. Internamente, il loop crea iteratori per tali oggetti applicando il metodo iter (). Riceviamo un iteratore quando impieghiamo l'argomento chunksize. Per ottenere i valori, possiamo iterare su questo oggetto. Il set di dati viene letto in blocchi di dati con le righe specificate nell'esempio precedente perché l'argomento chunksize ha fornito un valore. Il parametro Chunksize è stato specificato a 1000000 per il nostro set di dati, risultando in sei iteratori.

Esempio n. 3: un altro esempio di parametro chunksize

Come discusso in precedenza, Chunksize è il parametro utilizzato frequentemente in Python per leggere file di grandi dimensioni o set di dati. Chunksize divide i dati in tempo reale mentre si legge in sezioni più piccole note come blocchi, il che aumenta l'efficacia complessiva del programma; Se leggiamo un .File CSV senza questo parametro.

I panda vengono spesso utilizzati per la memorizzazione di una grande quantità di dati; Consentono una facile leggibilità e l'accesso ai dati in breve tempo. Il file dato (valutazioni.CSV) ha dati di 1048575 pazienti entro 1048575 e 4 colonne. Quando questo file viene letto da un programma senza alcun parametro specifico, ci vorrà molto tempo per elaborare così tante informazioni rendendo il programma meno efficiente. Quando incontriamo questo tipo di dati di grandi dimensioni, utilizziamo parametri come Chunksize. Il parametro chunksize utilizza iteratori per iterare su un contenitore specifico, come l'elenco, e può essere accoppiato a loop diversi.

Nell'esempio precedente, la struttura dei dati di Pandas viene utilizzata per leggere e archiviare le informazioni e viene utilizzata anche Chunksize, che sta iterando su un oggetto per ottenere i valori. Legge il nostro file dato in sottosezioni di dati (blocchi). In particolare per il set di dati dato, sono stati specificati quattro iteratori per la chunksize di 250000. Il valore restituito dopo aver letto l'oggetto non è il telaio di dati ma un parser di panda, i.e., panda.io.parser.TextFileReader. Questi sono responsabili del trasversale sull'oggetto e dei valori che risultano alla fine. La cosa da notare qui è che il numero della colonna è lo stesso per ogni iteratore, il che indica che il parametro "chunksize" utilizza solo il numero di righe, non la colonna, durante la creazione di iteratore.

Conclusione

In questo tutorial, abbiamo visto che la memoria della loro macchina locale non può adattarsi alle dimensioni dei set di dati che di solito gli scienziati gestiscono. Pertanto, mentre leggiamo enormi set di dati, utilizziamo l'argomento Chunksize per abbattere il set di dati in blocchi di dati. Ora, dopo aver letto questo tutorial, potresti essere in grado di usare te stesso l'argomento chunksize. Abbiamo implementato alcuni esempi per insegnarti come dividere il tuo set di dati con il .Estensione del file CSV in piccoli blocchi.