7 Funzioni di Grafici Panda per una Rapida Visualizzazione dei Dati

7 Funzioni del Grafico Panda per una Veloce Visualizzazione dei Dati

 

Quando si analizzano i dati con pandas, si utilizzeranno le funzioni di pandas per filtrare e trasformare le colonne, unire dati da più dataframe e simili.

Ma può essere utile generare spesso grafici – per visualizzare i dati nel dataframe – invece di limitarsi a guardare i numeri. 

Pandas dispone di diverse funzioni di tracciamento che è possibile utilizzare per una visualizzazione rapida e semplice dei dati. E le esamineremo in questo tutorial.

🔗 Link al Notebook Google Colab (se vuoi codificare insieme).

 

Creazione di un DataFrame di Pandas 

 

Creiamo un dataframe di esempio per l’analisi. Creeremo un dataframe chiamato df_employees contenente i record dei dipendenti.

Utilizzeremo Faker e il modulo random di NumPy per popolare il dataframe con 200 record.

Nota: Se non hai installato Faker nel tuo ambiente di sviluppo, puoi installarlo usando pip: pip install Faker.

Esegui il seguente frammento di codice per creare e popolare df_employees con i record:

import pandas as pdfrom faker import Fakerimport numpy as np# Istanza del oggetto Fakefake = Faker()Faker.seed(27)# Creazione di un DataFrame per i dipendentinum_employees = 200departments = ['Ingegneria', 'Finanza', 'HR', 'Marketing', 'Vendite', 'IT']anni_con_azienda = np.random.randint(1, 10, size=num_employees)salary = 40000 + 2000 * anni_con_azienda * np.random.randn()employee_data = {   'IDdipendente': np.arange(1, num_employees + 1),  'Nome': [fake.first_name() for _ in range(num_employees)], 'Cognome': [fake.last_name() for _ in range(num_employees)],   'Età': np.random.randint(22, 60, size=num_employees),   'Dipartimento': [fake.random_element(departments) for _ in range(num_employees)], 'Stipendio': np.round(salary), 'AnniConAzienda': anni_con_azienda}df_employees = pd.DataFrame(employee_data)# Visualizza l'inizio del DataFramedf_employees.head(10)

 

Abbiamo impostato il seme per la riproducibilità. Quindi ogni volta che esegui questo codice, otterrai gli stessi record.

Ecco i primi record del dataframe: 

 

1. Diagramma di dispersione

 

I diagrammi di dispersione vengono generalmente utilizzati per comprendere la relazione tra due variabili nel dataset.

Per il dataframe df_employees, creiamo un diagramma di dispersione per visualizzare la relazione tra l’età del dipendente e lo stipendio. Questo ci aiuterà a capire se c’è una correlazione tra l’età dei dipendenti e i loro stipendi.

Per creare un diagramma di dispersione, possiamo utilizzare plot.scatter() così:

# Diagramma di dispersione: Età vs Stipendiodf_employees.plot.scatter(x='Età', y='Stipendio', title='Diagramma di dispersione: Età vs Stipendio', xlabel='Età', ylabel='Stipendio', grid=True)

 

 

Per questo dataframe di esempio, non vediamo alcuna correlazione tra l’età dei dipendenti e gli stipendi.

 

2. Linea di tracciamento

 

Un grafico a linea è adatto per identificare trend e pattern su una variabile continua che di solito è il tempo o una scala simile.

Quando si crea il dataframe df_employees, abbiamo definito una relazione lineare tra il numero di anni in cui un dipendente ha lavorato per l’azienda e il suo stipendio. Quindi vediamo il grafico a linea che mostra come variano gli stipendi medi con il numero di anni.

Troviamo il salario medio raggruppato in base agli anni di servizio, quindi creiamo un grafico a linea con plot.line():

# Grafico a Linea: Tendenza del Salario Medio In Base Aanni di Esperienza media_stipendio_per_esperienza = df_dipendenti.groupby('AnniConAzienda')['Stipendio'].mean()df_dipendenti['StipendioMedioPerEsperienza'] = df_dipendenti['AnniConAzienda'].map(media_stipendio_per_esperienza)df_dipendenti.plot.line(x='AnniConAzienda', y='StipendioMedioPerEsperienza', marker='o', linestyle='-', title='Tendenza del Salario Medio In Base Anni di Esperienza', xlabel='Anni Con Azienda', ylabel='Salario Medio', legend=False, grid=True)

Poiché abbiamo scelto di popolare il campo del salario utilizzando una relazione lineare con il numero di anni in cui un dipendente ha lavorato presso l’azienda, possiamo notare che il grafico a linea riflette questa relazione.

3. Istogramma

Puoi utilizzare gli istogrammi per visualizzare la distribuzione di variabili continue – dividendo i valori in intervalli o gruppi – e mostrando il numero di punti dati in ciascun gruppo.

Analizziamo la distribuzione delle età dei dipendenti utilizzando un istogramma utilizzando plot.hist() come mostrato di seguito:

# Istogramma: Distribuzione delle Etàdf_dipendenti['Età'].plot.hist(title='Distribuzione delle Età', bins=15)

4. Grafico a Scatola

Un grafico a scatola è utile per comprendere la distribuzione di una variabile, la sua dispersione e per identificare gli outliers.

Creiamo un grafico a scatola per confrontare la distribuzione dei salari tra i diversi dipartimenti, fornendo un confronto a livello organizzativo della distribuzione dei salari.

Il grafico a scatola ci aiuterà anche a identificare l’intervallo di salario e informazioni utili come il salario mediano e gli outliers potenziali per ciascun dipartimento.

In questo caso, utilizziamo il boxplot della colonna “Salario” raggruppata per “Dipartimento”:

# Grafico a Scatola: Distribuzione salariale per Dipartimentodf_dipendenti.boxplot(column='Salario', by='Dipartimento', grid=True, vert=False)

Dal grafico a scatola, possiamo vedere che alcuni dipartimenti hanno una maggiore variazione salariale rispetto ad altri.

5. Grafico a Barre

Quando si desidera comprendere la distribuzione delle variabili in termini di frequenza di occorrenza, è possibile utilizzare un grafico a barre.

Ora creiamo un grafico a barre utilizzando plot.bar() per visualizzare il numero di dipendenti:

# Grafico a Barre: Conteggio dipendenti per Dipartimentodf_dipendenti['Dipartimento'].value_counts().plot.bar(title='Conteggio Dipendenti per Dipartimento')

6. Grafico a Area

I grafici a area sono generalmente utilizzati per visualizzare la distribuzione cumulativa di una variabile sull’asse continuo o categorico.

Per il dataframe dei dipendenti, possiamo tracciare la distribuzione cumulativa del salario per diversi gruppi di età. Per mappare i dipendenti in gruppi in base all’età, utilizziamo pd.cut().

Troviamo quindi la somma cumulativa dei salari raggruppati per ‘GruppoEtà’. Per ottenere il grafico a area, utilizziamo plot.area():

# Grafico a Area: Distribuzione Cumulativa del Salario per Gruppi di Etàdf_dipendenti['GruppoEtà'] = pd.cut(df_dipendenti['Età'], bins=[20, 30, 40, 50, 60], labels=['20-29', '30-39', '40-49', '50-59'])somma_cumulativa_salario_per_gruppo_età = df_dipendenti.groupby('GruppoEtà')['Salario'].cumsum()df_dipendenti['DistribuzioneCumulativaSalarioGruppoEtà'] = somma_cumulativa_salario_per_gruppo_etàdf_dipendenti.plot.area(x='GruppoEtà', y='DistribuzioneCumulativaSalarioGruppoEtà', title='Distribuzione Cumulativa del Salario per Gruppi di Età', xlabel='Gruppo di Età', ylabel='Salario Cumulativo', legend=False, grid=True)

 

 

7. Grafico a torta

 

I grafici a torta sono utili quando si desidera visualizzare la proporzione di ciascuna delle categorie all’interno di un intero.

Nel nostro esempio, ha senso creare un grafico a torta che visualizzi la distribuzione degli stipendi nei dipartimenti all’interno dell’organizzazione.

Troviamo l’importo totale degli stipendi dei dipendenti raggruppati per dipartimento. E poi utilizziamo plot.pie() per disegnare il grafico a torta:

# Grafico a torta: Distribuzione degli stipendi per dipartimento
df_employees.groupby('Dipartimento')['Stipendio'].sum().plot.pie(title='Distribuzione degli stipendi per dipartimento', autopct='%1.1f%%')

 

 

Conclusione

 

Spero che tu abbia trovato alcune funzioni di visualizzazione utili che puoi utilizzare in pandas.

Sì, puoi generare grafici molto più belli con matplotlib e seaborn. Ma per una visualizzazione rapida dei dati, queste funzioni possono essere estremamente utili.

Quali sono alcune delle altre funzioni di visualizzazione di pandas che usi spesso? Fammelo sapere nei commenti.

[Bala Priya C](https://twitter.com/balawc27) è una sviluppatrice e scrittrice tecnica dell’India. Le piace lavorare all’intersezione tra matematica, programmazione, data science e creazione di contenuti. Le sue aree di interesse e competenza includono DevOps, data science e elaborazione del linguaggio naturale. Ama leggere, scrivere, programmare e il caffè! Attualmente sta lavorando per imparare e condividere la sua conoscenza con la comunità degli sviluppatori scrivendo tutorial, guide pratiche, articoli di opinione e altro.