Pulire i dati in Python: qualche strumento utile

Pulire i dati in Python: qualche strumento utile

7 Febbraio 2023 ai 2
pulire i dati con python

Pulire i dati in Python: chi si occupa di analisi di dati si trova spesso ad aver a che fare con una fase del lavoro lunga, complessa ma indispensabile: pulire i dati. 

Spesso purtroppo il formato o la natura dei dati che vengono raccolti non consente di utilizzarli già direttamente per le proprie analisi e visualizzazioni, quindi è necessario per il data scientist riportarli prima a una forma adeguata.

Fortunatamente si può ridurre l’attività di pulizia dei dati in Python tramite dei comodi pacchetti, che vedremo nel corso di questo articolo.

1) Klib

Klib è un pacchetto Python open-source per l’importazione, la pulizia e l’analisi dei dati. Le API di Klib sono facili da usare, in particolare l’API per la pulizia data_cleaning; però in generale consiglio di usare Klib perché è un pacchetto intuitivo anche per le altre funzioni. 

Per la pulizia dei dati, Klib si affida all’API per pulire automaticamente i frame di dati. Procediamo con l’installazione:

pip install klib

Dopo l’installazione, elaboriamo il set di dati:

importar klib

df_cleaned = klib.data_cleaning(review)

A questo punto Klib metterà in atto una serie di passaggio prestabiliti che ti aiutano nella pulizia dei dati. Nel dettaglio, questo pacchetto si occupa di pulizia dei nomi delle colonne, eliminazione delle colonne vuote e virtualmente vuote, rimozione di singole colonne, eliminazione delle righe duplicate, riduzione delle dimensioni dei dati, per occupare meno spazio in memoria.

2) Scrubadub per pulire i dati in Python

Anche Scrubadub è un’ottima alternativa per la pulizia dei dati, soprattutto se devi rimuovere delle informazioni sensibili o personali dai dati, o meglio delle informazioni che consentono di identificare degli individui. 

Scrubadub elimina ad esempio il nome e l’email, sostituendoli con {{NAME}} o {{EMAIL}}, ma anche il CAP, la data di nascita, il numero della carta di credito, il numero di telefono, la combinazione di username e password, il numero di patente e anche gli URL.

Procedi con l’installazione:

pip install scrubadub

Dopodiché scegli il file di dati da sottoporre alla pulizia con Scrubadub (nel mio caso ho creato un file di prova contenente diverse informazioni su un gruppo di utenti che si sono registrati a un sito.

review['FilediProva'].loc[1894]

sample = review['FilediProva'].loc[1894]

scrubadub.clean(sample)

Con questo primo passaggio elimino la mail dei singoli utenti e la sostituisco con la stringa di testo {{EMAIL}}. Ora proviamo a togliere il nome dell’utente. 

In generale è sempre meglio migliorare l’identificatore del nome di Scrubadub pescando da altri pacchetti come TextBlob.

scrubber = scrubadub.Scrubber()

scrubber.add_detector(scrubadub.detectors.TextBlobNameDetector)

scrubber.clean(sample)

Ecco rimosso anche il nome! Per rimuovere altre caratteristiche ti consiglio di andare direttamente alla pagina del tool e di cercare lì il codice che ti serve.

3) DataPrep per pulire i dati in Python

Dataprep, come già Klib, si occupa dei dati per diversi aspetti, tra cui la raccolta dati e la navigazione tra set di dati. Per la pulizia abbiamo oltre 140 API, in grado di eliminare intestazioni di colonne, nomi di Paesi, numeri di documenti d’identità, date e moltissimi altri. Rispetto a Scrubadub abbiamo anche la possibilità di scegliere tra tanti Paesi diversi – il che è utile se ad esempio devi eliminare il numero di carta d’identità italiana, o altri dati identificativi simili.

Hai dubbi su quali dati dovresti pulire?

Allora puoi lasciar lavorare l’API clean_df di DataPrep, che fa scegliere al pacchetto direttamente le informazioni da cancellare.

Procediamo con l’installazione:

pip install dataprep

Dopo l’installazione del pacchetto, applica l’API clean_df nel tuo precedente dataset.

from dataprep.clean import clean_df

inferred_dtypes, cleaned_df = clean_df(review)

Il pacchetto ti dirà quali dati sono stati puliti e di quanto è più leggero il file.

4) Pyjanitor per pulire i dati in Python

Pyjanitor è un’implementazione del pacchetto Janitor di R per pulire i dati con metodi di concatenazione in ambiente Python. Si può usare il pacchetto Pyjanitor grazie a un’API molto intuitiva collegata direttamente al pacchetto Pandas – che già si occupa di pulizia, ma che con Pyjanitor raggiunge un livello successivo.

Installiamolo:

import pandas as pd

review = pd.read_csv('data_review.csv')

review.info()

Questo codice ci restituirà le anomalie riscontrare nel formato dei nostri dati. 

Proviamo a ripulire il dataset con Pandas e Pyjanitor:

pip install pyjanitor

Una volta terminata l’installazione, importa il pacchetto e la funzione API sarà disponibile tramite l’API di Pandas. 

Procediamo:

import janitor

jan_review = review.factorize_columns(column_names=["userName"]).expand_column(column_name = 'reviewCreatedVersion').clean_names()

I dati categorici nella colonna userName sono stati convertiti in dati numerici (factorize_columns). Infine, i nomi delle colonne sono stati convertiti in minuscolo e tutti gli spazi sono stati sostituiti con dei trattini bassi (clean_names).

Con questi 4 strumenti la pulizia dei dati diventa immediata, rapida e ben fatta.

Buone analisi!

 

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *