Un’introduzione amichevole all’analisi dei dati in Python

Nel corso degli anni, l’uso di Python per la scienza dei dati è cresciuto incredibilmente e continua a crescere ogni giorno.


La scienza dei dati è un vasto campo di studio con molti sottocampi, di cui l’analisi dei dati è senza dubbio uno dei più importanti di tutti questi campi e, indipendentemente dal livello di abilità nella scienza dei dati, è diventato sempre più importante capire o avere almeno una conoscenza di base di esso.

Che cos’è l’analisi dei dati?

L’analisi dei dati è la pulizia e la trasformazione di una grande quantità di dati non strutturati o non organizzati, con l’obiettivo di generare intuizioni chiave e informazioni su questi dati che aiuterebbero a prendere decisioni informate.

Esistono vari strumenti utilizzati per l’analisi dei dati, Python, Microsoft Excel, Tableau, SaS, ecc. Ma in questo articolo ci concentreremo su come viene eseguita l’analisi dei dati in Python. Più specificamente, come è fatto con una libreria Python chiamata Pandas.

Cosa sono i panda?

Pandas è una libreria Python open source utilizzata per la manipolazione e la lotta dei dati. È veloce ed altamente efficiente e dispone di strumenti per caricare diversi tipi di dati in memoria. Può essere utilizzato per rimodellare, etichettare slice, indicizzare o persino raggruppare diverse forme di dati.

Strutture di dati in Panda

Ci sono 3 strutture di dati in Panda, vale a dire;

  • Serie
  • dataframe
  • Pannello

Il modo migliore per differenziarli è vederne uno contenente più pile dell’altro. Quindi un DataFrame è una pila di serie e un Pannello è una pila di DataFrame.

Una serie è un array monodimensionale

Una serie di più serie crea un DataFrame bidimensionale

Una pila di più DataFrames crea un pannello tridimensionale

La struttura di dati con cui lavoreremmo di più è il DataFrame bidimensionale che può anche essere il mezzo di rappresentazione predefinito per alcuni set di dati che potremmo incontrare.

Analisi dei dati in Panda

Per questo articolo, non è necessaria alcuna installazione. Useremmo uno strumento chiamato Colaboratory creato da Google. Si tratta di un ambiente Python online per l’analisi dei dati, l’apprendimento automatico e l’intelligenza artificiale. È semplicemente un notebook Jupyter basato su cloud che viene preinstallato con quasi tutti i pacchetti python di cui avresti bisogno come scienziato dei dati.

Ora vai a https://colab.research.google.com/notebooks/intro.ipynb. Dovresti vedere il seguito.

Nella barra di navigazione in alto a sinistra, fai clic sull’opzione file e fai clic sull’opzione “nuovo blocco note”. Verrà visualizzata una nuova pagina del taccuino Jupyter caricata nel browser. La prima cosa che dobbiamo fare è importare i panda nel nostro ambiente di lavoro. Possiamo farlo eseguendo il seguente codice;

importare i panda come pd

Per questo articolo, utilizzeremo un set di dati sui prezzi delle case per la nostra analisi dei dati. È possibile trovare il set di dati che utilizzeremo Qui. La prima cosa che vorremmo fare è caricare questo set di dati nel nostro ambiente.

Possiamo farlo con il seguente codice in una nuova cella;

df = pd.read_csv (‘https://firebasestorage.googleapis.com/v0/b/ai6-portfolio-abeokuta.appspot.com/o/kc_house_data.csv?alt=media &token = 6a5ab32c-3cac-42b3-b534-4dbd0e4bdbc0 ‘, sep =’, ‘)

.Read_csv viene utilizzato quando vogliamo leggere un file CSV e abbiamo passato una proprietà sep per mostrare che il file CSV è delimitato da virgole.

Dobbiamo anche notare che il nostro file CSV caricato è archiviato in una variabile df .

Non è necessario utilizzare la funzione print () in Jupyter Notebook. Possiamo semplicemente digitare un nome variabile nella nostra cella e Jupyter Notebook lo stamperà per noi.

Possiamo provarlo digitando df in una nuova cella ed eseguendolo, stamperà tutti i dati nel nostro set di dati come DataFrame per noi.

Ma non vogliamo sempre vedere tutti i dati, a volte vogliamo solo vedere i primi pochi dati e i nomi delle loro colonne. Possiamo usare la funzione df.head () per stampare le prime cinque colonne e df.tail () per stampare le ultime cinque. L’output di uno dei due sembrerebbe tale;

Vorremmo verificare le relazioni tra queste diverse righe e colonne di dati. La funzione .describe () fa esattamente questo per noi.

 L’esecuzione di df.describe () fornisce il seguente output;

Possiamo immediatamente vedere che .describe () fornisce media, deviazione standard, valori minimi e massimi e percentili di ogni singola colonna nel DataFrame. Questo è particolarmente utile.

Possiamo anche controllare la forma del nostro DataFrame 2D per scoprire quante righe e colonne ha. Possiamo farlo usando df.shape che restituisce una tupla nel formato (righe, colonne).

Possiamo anche controllare i nomi di tutte le colonne nel nostro DataFrame usando df.columns.

Cosa succede se vogliamo selezionare solo una colonna e restituire tutti i dati in essa contenuti? Questo è fatto in modo simile all’analisi di un dizionario. Digita il seguente codice in una nuova cella ed eseguilo

df [‘prezzo’]

Il codice sopra riportato restituisce la colonna dei prezzi, possiamo andare oltre salvandolo in una nuova variabile in quanto tale

prezzo = df [‘prezzo’]

Ora possiamo eseguire ogni altra azione che può essere eseguita su un DataFrame sulla nostra variabile di prezzo poiché è solo un sottoinsieme di un DataFrame reale. Possiamo fare cose come df.head (), df.shape ecc..

Potremmo anche selezionare più colonne passando un elenco di nomi di colonna in df come tale

data = df [[‘price’, ‘bedrooms’]]

Quanto sopra seleziona le colonne con i nomi “prezzo” e “camere da letto”, se digitiamo data.head () in una nuova cella, avremmo il seguente

Il modo precedente di tagliare le colonne restituisce tutti gli elementi di riga in quella colonna, cosa succede se vogliamo restituire un sottoinsieme di righe e un sottoinsieme di colonne dal nostro set di dati? Questo può essere fatto usando .iloc ed è indicizzato in modo simile agli Elenchi di Python. Quindi possiamo fare qualcosa del genere

df.iloc [50:, 3]

Che restituisce la terza colonna dalla 50a fila fino alla fine. È abbastanza pulito e lo stesso delle liste di sezioni in Python.

Ora facciamo alcune cose davvero interessanti, il nostro set di dati sui prezzi delle abitazioni ha una colonna che ci dice il prezzo di una casa e un’altra colonna ci dice il numero di camere da letto di quella particolare casa. Il prezzo delle case è un valore continuo, quindi è possibile che non abbiamo due case con lo stesso prezzo. Ma il numero di camere da letto è piuttosto discreto, quindi possiamo avere diverse case con due, tre, quattro camere da letto, ecc.

E se vogliamo ottenere tutte le case con lo stesso numero di camere da letto e trovare il prezzo medio di ogni camera da letto discreta? È relativamente facile farlo in Panda, può essere fatto come tale;

df.groupby (‘bedrooms’) [‘price’] .mean ()

Quanto sopra prima raggruppa il DataFrame dai set di dati con identico numero di camera da letto usando la funzione df.groupby (), quindi diciamo di darci solo la colonna della camera da letto e usare la funzione .mean () per trovare la media di ogni casa nel set di dati.

Cosa succede se vogliamo visualizzare quanto sopra? Vorremmo essere in grado di verificare come varia il prezzo medio di ogni numero di camera da letto distinto? Dobbiamo solo concatenare il codice precedente in una funzione .plot () in quanto tale;

df.groupby (‘bedrooms’) [‘price’] .mean (). plot ()

Avremo un output che sembra tale;

Quanto sopra ci mostra alcune tendenze nei dati. Sull’asse orizzontale, abbiamo un numero distinto di camere da letto (si noti che più di una casa può avere un numero X di camere da letto), sull’asse verticale, abbiamo la media dei prezzi per quanto riguarda il numero corrispondente di camere da letto sull’orizzontale asse. Ora possiamo immediatamente notare che le case che hanno tra le 5 e le 10 camere costano molto più delle case con 3 camere da letto. Sarà anche ovvio che le case che hanno circa 7 o 8 camere costano molto più di quelle con 15, 20 o addirittura 30 camere.

Informazioni come le precedenti sono le ragioni per cui l’analisi dei dati è molto importante, siamo in grado di estrarre informazioni utili dai dati che non sono immediatamente o quasi impossibili da notare senza analisi.

Dati mancanti

Supponiamo che stia prendendo un sondaggio che consiste in una serie di domande. Condivido un link al sondaggio con migliaia di persone in modo che possano dare il loro feedback. Il mio obiettivo finale è eseguire l’analisi dei dati su questi dati in modo da poter ottenere alcune informazioni chiave dai dati.

Ora molto potrebbe andare storto, alcuni geometri potrebbero sentirsi a disagio nel rispondere ad alcune delle mie domande e lasciarlo in bianco. Molte persone potrebbero fare lo stesso per diverse parti delle mie domande del sondaggio. Questo potrebbe non essere considerato un problema, ma immagina se dovessi raccogliere dati numerici nel mio sondaggio e una parte dell’analisi mi ha richiesto di ottenere la somma, la media o qualche altra operazione aritmetica. Diversi valori mancanti porterebbero a molte inesattezze nella mia analisi, devo trovare un modo per trovare e sostituire questi valori mancanti con alcuni valori che potrebbero sostituirli strettamente.

Panda ci fornisce una funzione per trovare valori mancanti in un DataFrame chiamato isnull ().

La funzione isnull () può essere usata come tale;

df.isnull ()

Questo restituisce un DataFrame di booleani che ci dice se i dati presenti in origine erano davvero mancanti o falsamente mancanti. L’output sembrerebbe tale;


Abbiamo bisogno di un modo per poter sostituire tutti questi valori mancanti, molto spesso la scelta dei valori mancanti può essere presa come zero. A volte potrebbe essere preso come media di tutti gli altri dati o forse come media dei dati circostanti, a seconda del data scientist e del caso d’uso dei dati analizzati.

Per riempire tutti i valori mancanti in un DataFrame, utilizziamo la funzione .fillna () utilizzata come tale;

df.fillna (0)

In quanto sopra, stiamo riempiendo tutti i dati vuoti con valore zero. Potrebbe anche essere qualsiasi altro numero che specifichiamo essere.

L’importanza dei dati non può essere sottovalutata, ci aiuta a ottenere risposte direttamente dai nostri dati !. L’analisi dei dati che dicono è il nuovo Oil for Digital Economies.

Tutti gli esempi in questo articolo possono essere trovati Qui.

Per saperne di più in profondità, controlla Analisi dei dati con corso online Python e Panda.

TAGS:

  • Pitone

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map