Python – Open file e grafico

Questa applicazione di Python permette di aprire un file CSV leggi la definizione su WP) ovvero un file di testo con dei campi definiti e dei valori separi dalla virgola (,). Si possono utilizzare anche altri separatori come ad esempio il punto e virgola (;) o la tabulazione (   ). In questo caso  si parla di TSV (Tab-separated values) con questa definizione. Una volta caricati i dati andremo a farne una prima presentazione grafica su un piano cartesiano.

Si utilizza Google Colab (Colaboratory) che non necessita di installazione ma solo di accesso con un account Gmail (Google Account).

Esempio di applicazione di analisi dei dati

Il nostro obiettivo è quello di aprire un file in formato CSV (Comma-Separated Values) che di norma ha l’estensione .csv e poi rappresentarlo graficamente.
Si tratta di uno dei formati più diffusi e disponibili sul mercato

I dataset sono disponibili all’indirizzo: https://github.com/mauriziog/data

Dentro al repository sono contenuti dataset da utilizzare per le prove ed esercitazioni.

Facciamo riferimento a questo file istat-popolazione.csv che nella sua versione Raw (che dobbiamo utilizzare nel codice) sarà questa: https://raw.githubusercontent.com/mauriziog/bigdata/master/data/istat-popolazione.csv

Proviamo ad aprire un file .csv con un editor o visualizzandolo su un browser. Questo sarà il risultato:

Avviamo https://colab.research.google.com 

Creiamo un nuovo notebook con  [new notebook

Il file avrà estensione .ipynb e diamo il nome prova_dati.ipynb

Proviamo a caricare il file che si chiama istat_eta_2022.csv

Dobbiamo utilizzare il formato Raw e quindi il percorso totale sarà: https://raw.githubusercontent.com/mauriziog/data/main/istat_eta_2022.csv 

Strumenti necessari

Utilizzeremo Google Col (o Colaboratory) che non richiede alcuna installazione. 

Iniziamo a scrivere il codice e nella prima riga importiamo la libreria Pandas e poi di seguito il codice

import pandas as pd
# df indica dataframe
df = pd.read_csv("https://_____.csv")

In questo caso il file sarà a questo indirizzo: https://raw.githubusercontent.com/mauriziog/data/main/istat_eta_2022.csv 

Se metto il cursore sopra a “df” potrò avere informazioni sul data frame e visualizzarlo

Eseguiamo RUN (cerchio con freccia a destra nella parte sinistra del codice) 


E se non ci sono errori possiamo andare con il cursore sopra alla variabile “df” e visualizzerà la possibilità di vedere il file ed alcuni parametri.

Aggiungiamo una riga di codice 

df

Eseguiamo RUN (cerchio con freccia a destra nella parte sinistra del codice) 

Questa volta farà vedere la tabella stessa.

Cancelliamo “df” aggiunto per ultimo dopo la prova e inseriamo una funzione per visualizzare i dati

import matplotlib.pyplot as plt
# definiamo le dimensioni della finestra in pollici ed il dpi
from matplotlib.pyplot import figure
figure(figsize=(18,10), dpi=80)
x = df['Eta']
y = df['Maschi']

Il codice completo sarà il seguente:

#prova_dati_2
import pandas as pd
df = pd.read_csv("https://raw.githubusercontent.com/mauriziog/data/main/istat_eta_2022.csv")
import matplotlib.pyplot as plt

# definiamo le dimensioni della finestra in pollici ed il dpi
from matplotlib.pyplot import figure
figure(figsize=(18,10), dpi=80)
x = df['Eta']
y = df['Maschi']

plt.plot(x,y)

Questo il risultato

Se vogliamo cambiare le dimensioni della finestra aggiungiamo le riga:

from matplotlib.pyplot import figure
figure(figsize=(18,10), dpi=80)

proviamo una variante in cui plottiamo i due grafici dei campi [Maschi] in verde e [Femmine] in rosso.

Questo è il codice:

#prova_dati_3
#visualizza di dati di maschi (verde) e femmine (rosso)
import pandas as pd
df = pd.read_csv("https://raw.githubusercontent.com/mauriziog/data/main/istat_eta_2022.csv")
import matplotlib.pyplot as plt
# definiamo le dimensioni della finestra in pollici ed il dpi
from matplotlib.pyplot import figure
figure(figsize=(18,10), dpi=80)
x = df['Eta']
y = df['Maschi']
z = df['Femmine']
# plt.fill_between(x,y,color ='green', where =(y<20000))
plt.plot(x,y,'green')
plt.plot(x,z,'red')

Questo sarà il risultato

 

 

 

:: ==================

Vedi anche