
In questa prima lezione vedremo:
come installare Python su un PC personale con sistema operativo Windows;
come utilizzare Python da terminale;
come installare Jupyter Notebook e le principali librerie di Python per l'analisi dei dati;
come muovere i primi passi su Jupyter Notebook per creare ed eseguire codice con Python.
Ovviamente vale sempre la raccomandazione di utilizzare un proprio PC personale (non aziendale) per installare questo e qualsiasi altro software.
Nella sezione "Risorse" della lezione trovi il codice relativa all'intera sezione didattica e tutti i file di input che utilizzeremo nel corso.
Il primo passo del lungo processo di analisi dei dati è l'acquisizione (o import) dei dati da svariate fonti.
In questa lezione vedremo le caratteristiche principali dei file csv e come importarli all'interno di un DataFrame di Pandas.
Nonostante i file possono provenire da fonti con strutture eterogenee, l'obiettivo della fase di import e di acquisire e far confluire i dati all'interno di una struttura comune: i DataFrame.
In questa lezione approfondiremo le caratteristiche e le peculiarità di questa importante struttura dati, facendo particolare attenzione al concetto di tipo applicato alle colonne.
In questa lezione vediamo come importare facilmente in Python i dati proveniente da un file Excel, analizzando le numerose analogie e i concetti comuni con il metodo visto in precedenza per i file csv.
La diffusione e l'utilizzo dei file in formato JSON è in continua crescita. Il formato JSON permette infatti di rappresentare facilmente strutture che sarebbero troppo complesse per un usuale csv.
In questa lezione vedremo che cos'è un file JSON, quali sono le sue caratteristiche principali e come importarne il contenuto all'interno di un dataframe di Pandas.
In questa lezione importeremo un file CSV più complesso con queste caratteristiche:
il carattere ";" come separatore
l'assenza di intestazione
la virgola come separatore dei decimali
le date nel formato italiano dd/mm/yyyy e quindi non internazionale
Vedremo come gestire tutti questi aspetti, in particolar modo il formato delle date che, se non indirizzato correttamente, può portare a gravi errori.
In alcuni casi le informazioni che dobbiamo acquisire sono salvate all'interno di file di testo che non hanno una struttura standard, ma sono organizzati secondo delle regole precise condivise tra gli utilizzatori di quelle informazioni.
In questa lezione di approfondimento acquisiremo con il linguaggio Python nativo i dati presenti all'interno di un file fasta. Si tratta di un particolare file strutturato utilizzato in ambito biologico.
La lezione ci darà l'occasione di entrare più nel dettaglio nella programmazione Python, iniziando ad utilizzare le liste i cicli for.
Miglioriamo il codice della lezione precedente utilizzando il costrutto with, riscrivendo i cicli for, aggregando il nostro codice in una funzione e aggiungendo dei commenti.
Vediamo come configurare gli argomenti di input e di output di una funzione.
Studiamo alcuni utilizzi particolari dei cicli for e delle liste.
Studiamo come utilizzare l'istruzione IF nel linguaggio di programmazione Python.
Impariamo a utilizzare la funzione input e utilizziamola per spiegare con degli esempi i casi d'uso dell'istruzione while in Pyton
Applichiamo quanto imparato nelle ultime lezione a un problema legato ai dati.
Svolgiamo un esercizio in cui le esecuzione delle iterazioni di un ciclo while sono guidate da una condizione più complessa. Vediamo inoltre come utilizzare le f-string all'interno della funzione print.
Analizziamo l'effetto e alcuni casi d'uso delle istruzioni break e continue all'interno di un ciclo while o for.
Studiamo un nuovo tipo di dati nativo di Python: i set.
Vediamo inoltre come gestire gli errori tramite il costrutto try-except
Vediamo come utilizzare il tipo set in un contesto di analisi dei dati.
In questa lezione vediamo come importare un file Excel contenente più fogli e studiamo come sono organizzati i dati all'interno di un dizionario di Python.
Analizziamo un ulteriore tipo nativo di Python per gestire sequenze di elementi.
Nella sezione "Risorse" della lezione trovi il codice relativa all'intera sezione didattica.
In questa prima lezione eseguiamo la funzione per importare i dati che utilizzeremo durante il capitolo.
Nella sezione "Risorse" della prima lezione della sezione (Organizzare il codice in funzioni) trovi il codice relativa all'intera sezione didattica. Per comodità, ho aggiunto anche in questa lezione la porzione di codice relativa ad essa.
Una delle attività più comuni dell'analisi dei dati è filtrarli. Molto spesso siamo interessati solamente a particolari righe del DataFrame importato, in base ad alcune loro proprietà.
In questa lezione vediamo come scrivere i primi filtri sui DataFrame di Pandas e come connetterli con gli operatori logici AND e OR. Particolare attenzione sarà posta sui tipi delle colonne che potranno influenzare il risultato del nostro codice.
Nella sezione "Risorse" della prima lezione della sezione (Organizzare il codice in funzioni) trovi il codice relativa all'intera sezione didattica. Per comodità, ho aggiunto anche in questa lezione la porzione di codice relativa ad essa.
Continuiamo a studiare la sintassi per scrivere filtri sui Dataframe. Vedremo in particolare:
come gestire i null;
come filtrare su colonne di tipo datetime;
come combinare i filtri e i metodo applicati alle colonne;
come filtrare in base alla posizione o all'indice delle righe.
Nella sezione risorse trovi lo script di questo aggiornamento.
Studiamo come utilizzare il metodo query per semplificare la scrittura di filtri su Pandas
Nella sezione "Risorse" della prima lezione della sezione (Organizzare il codice in funzioni) trovi il codice relativa all'intera sezione didattica. Per comodità, ho aggiunto anche in questa lezione la porzione di codice relativa ad essa.
In questa lezione studiamo i metodi .groupby e .agg per aggregare i dati e analizzarli sotto molteplici punti di vista.
Nella sezione "Risorse" della prima lezione della sezione (Organizzare il codice in funzioni) trovi il codice relativa all'intera sezione didattica. Per comodità, ho aggiunto anche in questa lezione la porzione di codice relativa ad essa.
In questa lezione studiamo un modo di scrivere il codice più veloce per raggruppare i dati tramite groupby.
Nella sezione "Risorse" della prima lezione della sezione (Organizzare il codice in funzioni) trovi il codice relativa all'intera sezione didattica. Per comodità, ho aggiunto anche in questa lezione la porzione di codice relativa ad essa.
In questa lezione vediamo come combinare i dati appartenenti a DataFrame diversi. Vedremo in particolare l'impatto dei tipi delle colonne e dei null sull'output del metodo .merge, oltre all'importanza del suo parametro di input how.
Nella sezione "Risorse" della prima lezione della sezione (Organizzare il codice in funzioni) trovi il codice relativa all'intera sezione didattica. Per comodità, ho aggiunto anche in questa lezione la porzione di codice relativa ad essa.
Vediamo come utilizzare il metodo .concat per unire i dati di più DataFrame concatenandoli gli uni sotto gli altri. Riflettiamo inoltre su come il tipo delle colonne influisca sul risultato di un comando.
Nella sezione "Risorse" della prima lezione della sezione (Organizzare il codice in funzioni) trovi il codice relativa all'intera sezione didattica. Per comodità, ho aggiunto anche in questa lezione la porzione di codice relativa ad essa.
In questa lezione analizziamo altre attività tipiche durante un processo di analisi dei dati:
ordinare le righe secondo il valore di una determinata colonna;
ordinare le righe in maniera randomica;
copiare i dati di un DataFrame;
convertire i dati di un DataFrame in una lista o in un array di numpy;
rinominare una colonna;
eliminare una colonna.
Nella sezione "Risorse" della prima lezione della sezione (Organizzare il codice in funzioni) trovi il codice relativa all'intera sezione didattica. Per comodità, ho aggiunto anche in questa lezione la porzione di codice relativa ad essa.
In questa lezione vediamo come modificare i dati all'interno di un DataFrame aggiornando particolari valori in base a delle condizioni e creando nuovo colonne applicando metodi di trasformazione dei dati.
Nella sezione risorse trovi lo script di questo approfondimento.
Approfondiamo le operazioni di trasformazione dei dati studiando le tecniche di Pivot e Unpivot
Studiamo come utilizzare correttamente il metodo drop_duplicates per visualizzare i dati senza duplicati.
Applichiamo il metodo Explode per la gestione di colonne multivalore di un Dataframe.
Esercitazione
Nella sezione "Risorse" di questa lezione trovate lo script con la soluzione completa.
In questa prima parte della soluzione pariamo importando il DataFrame Iris.
Ricordo che puoi scaricare la soluzione completa dell'esercitazione nella sezione risorse della lezione "Soluzione pt. 1: import del file Iris"
In questo video vediamo come:
filtrare le righe dove la colonna class contiene Iris setosa o Iris versicolor;
modificare l'ordine dei dati in modo casuale.
Ricordo che puoi scaricare la soluzione completa dell'esercitazione nella sezione risorse della lezione "Soluzione pt. 1: import del file Iris"
In questa lezione studiamo la prima parte dello script per eliminare le colonne con un numero di null superiore alla soglia.
Seconda parte dello script per eliminare le colonne con un numero di null superiore alla soglia
In questa lezione vediamo come:
sostituire Iris Setosa con 1 e Iris Versicolor con -1;
eliminare la colonna superflua rownumber;
creare due dataframe iris_training e iris_test con il 70% e il 30% dei dati di IrisWorking.
Vediamo come valorizzare i null con la media della rispettiva colonna nel dataset di Training
Eseguiamo la normalizzazione dei dati
Aggiungiamo ai dataset di training e test una colonna di nome weight valorizzata sempre con 1 e convertiamo il dataframe in quattro array di numpy.
Introduciamo i temi legati all'interazione con un Database da ambiente di programmazione Python
Connettiamoci a SQL Server tramite la libreria SQLAlchemy utilizzando l'autenticazione di Windows.
Approfondiamo i temi dell'autenticazione tramite nome utente, password e file di configurazione.
Utilizziamo la libreria Pymongo per connetterci a un database non relazionale di MongoDB.
Utilizziamo la libreria requests per ottenere informazioni tramite le API di Github
Utilizziamo la libreria biopython per semplificare la chiamate a particolari api API utili nella bioinformatica
In questa lezione fondamentale programmiamo in Python quello che è noto come il primo algoritmo di Machine Learning formulato nella storia: il Perceptron.
Continuiamo l'implementazione del Perceptron raffinando l'algoritmo della lezione precedente. In particolare:
aggiungeremo un ulteriore ciclo sul numero di epoche;
inseriremo una condizione di uscita da questo ciclo;
restituiremo in output il numero di errori ad ogni iterazione;
valuteremo l'accuratezza del vettore w generato sul Dataset di test.
In questa lezione riorganizziamo il codice del Preprocessing e del Perceptron in funzioni, utilizzando gli output della prima funzione come gli input della seconda. Nella parte finale della lezione iniziamo a introdurre i concetti di classe, metodo e attributo.
Entriamo nel vivo della programmazione a oggetti analizzando l'implementazione di una classe per eseguire l'algoritmo del Perceptron.
Vedremo in seguito come creare un oggetto a partire da una classe, interrogarne gli attributi e applicarne i metodi.
Analizziamo l'implementazione di una classe per implementare le operazioni di pre-processing dei dati. Esploriamo le potenzialità e la flessibilità del paradigma di programmazione ad oggetti vedendo ad esempio come gli attributi di oggetti diversi possono essere combinati tra loro.
In questa lezione utilizziamo la nota libreria di Machine Learning scikit-learn per eseguire in poche righe di codice le operazioni di pre-processing dei dati e l'applicazione dell'algoritmo del Perceptron.
Tramite la libreria scikit-learn possiamo applicare con grande facilità numerosi algoritmi di Machine Learning al DataFrame Iris. Vediamo in particolare:
la Discesa Stocastica del Gradiente;
la Regressione Logistica;
gli Alberi Decisionali;
le Random Forest;
il K nearest neighbors.
Implementiamo con Python e Pandas l'algoritmo K-neighbours. Utilizziamo in particolare il metodo merge per combinare i dati di training e test e calcoliamo le relative distanze.
Continuiamo l'implementazione dell'algoritmo k-neighbours calcolando e valutando i dati di training con distanza minore.
Nella sezione "Risorse" della lezione trovi il codice relativo a questa e alla prossime due lezioni.
In questa lezione lavoriamo sul famoso dataset Titanic importato tramite la libreria Seaborn e vediamo come utilizzare i metodi describe e corr di Pandas per effettuare una prima analisi statistica.
Utilizziamo la libreria Seaborn per rappresentare accuratamente le interazioni tra le variabili del dataset Titanic.
Nella sezione "Risorse" della lezione trovi il codice relativo a questa e alla prossime quattro lezioni.
Iniziamo la lezione eseguendo meccanicamente alcuni algoritmi di classificazione sul Dataset Titanic. In seguito riprendiamo il processo di analisi dei dati al fine di scegliere con criterio il sottoinsieme di feature da utilizzare.
Eseguiamo gli step di encoding delle variabili qualitative e normalizzazione delle variabili quantitative. Utilizziamo inoltre la classe make_column_transformer per applicare strategie diverse alle varie feature del dataset Titanic.
In questa lezione vediamo come automatizzare in una pipeline l'esecuzione dei vari step di Machine Learning . Tramite la convalida k-fold abbiamo un primo criterio per confrontare l'accuratezza di algoritmi differenti
In questa lezione vediamo come automatizzare il processo di tuning dei parametri di un algoritmo di Machine Learning.
In questa lezione studiamo come creare una matrice di confusione per valutare le predizioni di un algoritmo di classificazione. Vediamo inoltre i possibili vantaggi di passare a train_test_split un Dataframe di pandas.
In questa lezione ti mostrerò come creare un portfolio di progetti di Analisi dei dati presentando parte del lavoro svolto in questa corso, così potrai allegare il documento ottenuto al tuo curriculum o al tuo profilo di Linkedin e Github!
Nella sezione "Risorse" della lezione trovi il codice relativo a questa e alla prossime tre lezioni.
In questa lezione introduciamo i problemi di regressione supervisionata. Ci eserciteremo con il famoso dataset Diamonds che ci permetterà di fare importanti considerazioni sullo studio dei dati e del contenuto delle colonne.
Continuiamo la fase di pre-processing dei dati analizzando il contenuto delle variabili feature e target.
Creiamo con scikit-learn delle pipeline per valutare l'accuratezza di quattro algoritmi di classificazione lineare:
linear regression
ridge
lasso
elastic net
Ragioniamo inoltre sulle metriche per valutare l'accuratezza di un algoritmo di regressione.
Concludiamo la sezione applicando un algoritmo di regressione non lineare: il K-Neighbours Regressor. Vediamo inoltre come calcolare la media degli errori assoluti e disegnare un grafico dei residui.
Nella sezione "Risorse" della lezione trovi il codice relativo a questa e alla prossime due lezioni.
In questa lezione importiamo i dati di una serie storica e svolgiamo alcuni controlli sulla qualità dei dati.
Durante la lezione sono utilizzati dati di input provenienti dal file d'esempio presente nella documentazione online di Microsoft sul forecast in Excel.
https://support.microsoft.com/en-au/office/create-a-forecast-in-excel-for-windows-22c500da-6da7-45e5-bfdc-60a7062329fd
Iniziamo a implementare il modello matematico additivo per la predizione delle serie storiche calcolando le medie mobili centrate e la stagionalità.
Durante la lezione sono utilizzati dati di input provenienti dal file d'esempio presente nella documentazione online di Microsoft sul forecast in Excel.
https://support.microsoft.com/en-au/office/create-a-forecast-in-excel-for-windows-22c500da-6da7-45e5-bfdc-60a7062329fd
Completiamo il processo di predizione delle serie storiche tramite un modello di regressione sui dati destagionalizzati e il calcolo delle previsioni finali.
Durante la lezione sono utilizzati dati di input provenienti dal file d'esempio presente nella documentazione online di Microsoft sul forecast in Excel.
https://support.microsoft.com/en-au/office/create-a-forecast-in-excel-for-windows-22c500da-6da7-45e5-bfdc-60a7062329fd
Nella sezione "Risorse" della lezione trovi il codice relativo a questa lezione.
In questa lezione studiamo un algoritmo di Machine Learning non supervisionato per dividere i dati di input in cluster di individui simili.
Nella sezione "Risorse" della lezione trovi il codice relativo a questa lezione.
Utilizziamo la libreria folium per rappresentare mappe e dati geografici
In questa serie di lezioni analizziamo un Dataset a tema calcio, disponibile a questo link del famoso sito Kaggle.
https://www.kaggle.com/datasets/vivovinco/20212022-football-player-stats
Link alla licenza https://creativecommons.org/licenses/by/4.0/
Lavoriamo sulla colonna contenente i ruoli del calciatori e scegliamo le colonne da analizzare.
Eseguiamo le prime analisi sul dataset utilizzando i metodi query, group by, sort_values e head.
Eseguiamo analisi più complesse studiando le relazioni tra ruoli, competizioni e percentuale di tiri a segno.
Complimenti! Hai completato il Corso di Python per Data Analyst e Data Scientist.
In questo video ti mostro La Scuola dei Dati, la mia piattaforma didattica in cui trovi tutti i temi di cui hai bisogno spiegati in un unico percorso completo, organico e strutturato, pensato per accompagnarti passo dopo passo. Costruisci oggi la tua carriera in Data Analysis e Intelligenza Artificiale, a soli 11€ al mese.
Visita il sito https://www.lascuoladeidati.it/
Applica il codice 68D7C in fase di registrazione per ottenere un 30% di sconto sul primo mese.
L'obiettivo di questo corsi è fornirti uno degli strumenti più potenti e versatili per analizzare i dati: il linguaggio Python unito con alcune tra le sue importanti librerie come Pandas, Scikit-learn e Seaborn.
Con il termine "Analizzare i dati" non mi riferisco soltanto alla creazione di grafici o a tecniche di Data Visualization, temi comunque importanti e oggetto di alcune lezioni. In questo corso vedremo anche e soprattutto come usare Python nell'intero processo di trasformazione dei dati in informazioni, che prevede:
- l'acquisizione dei dati da file di formato differente;
- la gestione dei tipi e dei dati mancanti;
- le operazioni di trasformazione, pulizia e decodifica dei dati;
- il preprocessing dei dati per il Machine Learning;
- l'implementazione in Python dell'algoritmo di Machine Learning del Perceptron tramite la programmazione a oggetti;
- l'analisi esplorativa e la rappresentazione grafica dei dati tramite la libreria seaborn;
- l'utilizzo della libreria scikit-learn per creare modelli di classificazione supervisionata di Machine Learning;
- le attività di tuning dei parametri, convalida dei risultati e selezione dei modelli;
- l'esecuzione di algoritmi di regressione per predire variabili quantitative, l'analisi delle serie storiche e il clustering per raggruppare gli individui simili.
Il corso si rivolge dunque a chiunque voglia fare un importante upgrade delle proprie skill di analisi dei dati tramite l'apprendimento di quello che è tra i linguaggi di programmazione in più rapida diffusione e richiesti dal mercato nel 2023. È perfetto ad esempio se sei uno sviluppatore SQL e vuoi allargare le tue skill tecniche da Data Analyst alla programmazione in Python o al Machine Learning. Discorso simile se al momento utilizzi Excel e vuoi superare i suoi limiti o approfondire tecniche più elaborate di analisi dei dati.
Comunque, anche se una conoscenza del settore è sicuramente d'aiuto, nelle lezioni partiremo da zero quindi anche se non hai esperienza ma hai tanta voglia di imparare potrai approcciarti per la prima volta alla programmazione tramite questo corso al 100% pratico.
NOVITÀ! Ho aggiunto una lezione per mostrare un esempio di presentazione che espone le skill più importanti acquisite durante il corso, così potrai iniziare a creare un Portfolio di Analisi dei dati e allegare il documento ottenuto al tuo curriculum e al tuo profilo di LinkedIn e Github! Ho inserito infine un quiz finale con il quale potrai ripassare e verificare le competenze acquisite.
I pochi minuti relativi all'installazione e l'avvio di Python e Jupyter sono relativi a un PC con sistema operativo Windows, non è mostrato come eseguire queste attività su macOS (il processo è comunque molto simile ed è facilissimo trovare in rete materiale a riguardo). Ovviamente vale sempre la raccomandazione di utilizzare un proprio PC personale (non aziendale) per installare questo e qualsiasi altro software.
Le videolezioni sono corredate anche dai file contenenti gli script e gli esercizi visti durante le spiegazioni. Nel complesso, si tratta a tutti gli effetti di un manuale aggiuntivo di Python, Pandas e Machine Learning. Inoltre sarò sempre disponibile a rispondere a dubbi e domande sul materiale del corso, che potrai porre tramite i messaggi di Udemy o l'apposita sezione di Domande & Risposte.