Visualizzazione dei dati con Pandas PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

Visualizzazione dei dati con Panda

Finora Pandas ci ha aiutato nella fase di preelaborazione dei dati. Sebbene, in un caso, durante la creazione di istogrammi, abbiamo utilizzato anche un altro modulo di Pandas: plotting.

Finora abbiamo evitato di proposito, perché introdurlo prima solleverebbe più domande di quante ne abbia risposto. Vale a dire, Panda ed Matplotlib era un duo così comune e onnipresente che Pandas ha iniziato a integrare le funzionalità di Matplotlib. Esso pesantemente si basa su Matplotlib per eseguire qualsiasi tracciatura effettiva e troverai molte funzioni Matplotlib racchiuse nel codice sorgente. In alternativa, puoi utilizzare altri backend per la stampa, ad esempio Plotly ed Bokeh.

Tuttavia, Pandas ci presenta anche un paio di trame che non una parte dei tipi di trama standard di Matplotlib, come KDE, Curve di Andrews, Trame Bootstrap ed Matrici di dispersione.

Il plot() funzione di un Panda DataFrame utilizza il backend specificato da plotting.backende, a seconda di kind argomento: genera un grafico utilizzando la libreria specificata. Dal momento che molti di questi si sovrappongono, non ha senso coprire tipi di trama come line, bar, hist ed scatter. Produrranno più o meno le stesse trame con lo stesso codice che abbiamo fatto finora con Matplotlib.

Daremo solo un'occhiata brevemente al plot() funzione poiché il meccanismo sottostante è stato esplorato finora. Invece, concentriamoci su alcune delle trame che abbiamo non può già prontamente fare con Matplotlib.

Questo sarà un capitolo molto breve, poiché le capacità di tracciatura e visualizzazione di Pandas impallidiscono rispetto a Matplotlib, ma è comunque utile conoscerne alcune, oltre ad essere consapevole della capacità di tracciare da DataFrames direttamente.

Il DataFrame.plot() Funzione

Il plot() la funzione accetta x ed y caratteristiche e a kind discussione. In alternativa, per evitare il kind argomento, puoi anche chiamare DataFrame.plot.kind() invece, e passare il x ed y caratteristiche.

I valori accettati per il kind argomento sono: line, bar, barh (barra orizzontale), hist, box, kde, density (sinonimo di kde), area, pie, scatter ed hexbin (simile a una Heatmap).

import pandas as pd
from matplotlib import pyplot as plt df = pd.read_csv('gdp_csv.csv')
df_eu = df.loc[df['Country Name'] == 'European Union'] df_eu.plot.bar(x = 'Year', y = 'Value')
df_eu.plot.line(x = 'Year', y = 'Value')
df_eu.plot.box(x='Value') plt.show()

Invece di fornire il Series istanze come facciamo per Matplotlib: è sufficiente fornire il file nomi di colonne, e dal momento che stai chiamando il plot() funzione sul DataFrame stai visualizzando, è facile per Panda mappare questi valori di stringa sui nomi di colonna appropriati.

Ognuna di queste chiamate ne crea una nuova Figure istanza e traccia i valori appropriati su di essa:

Visualizzazione dei dati con Pandas PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

Per tracciare più assi sullo stesso Figure, puoi creare un file Figure e uno o più Axes via plt.subplots() e assegnare l'appropriato Axes Vai all’email ax argomento di ciascuno plot.plot_type() chiamata:

import pandas as pd
from matplotlib import pyplot as plt df = pd.read_csv('gdp_csv.csv')
df_eu = df.loc[df['Country Name'] == 'European Union'] fig, ax = plt.subplots(3, 1) df_eu.plot.box(x='Value', ax = ax[0])
df_eu.plot.line(x = 'Year', y = 'Value', ax = ax[1])
df_eu.plot.bar(x = 'Year', y = 'Value', rot = 45, ax = ax[2]) plt.show()

Alcuni degli argomenti standard, come il rotation argomento sono in realtà diversi nel plot() chiamate. Per esempio, rotation è abbreviato in rot. Questo lo rende un po' complicato basta cambiare tra Matplotlib e Pandas, poiché molto probabilmente finirai nelle pagine della documentazione, controllando solo quali argomenti possono essere applicati e quali no.

Ora, invece di crearne uno nuovo Figure or Axes ad esempio, ciascuno di questi appezzamenti sarà posizionato nell'appropriato Axes istanze con cui li abbiamo forniti:

Visualizzazione dei dati con Pandas PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

In generale, tracciare con Pandas è comodo e veloce, ma anche così, per tracciare grafici a barre, grafici a linee e box plot, probabilmente vorrai utilizzare Matplotlib. È sia il motore sottostante che Pandas utilizza inevitabilmente, sia ha anche più opzioni di personalizzazione, e non dovrai ricordare una nuova serie di argomenti che puoi usare con le trame di Pandas.

Detto questo, per alcune trame potresti preferire Pandas, dal momento che dovrebbero essere creati manualmente in Matplotlib, e alcuni di essi sono una tale seccatura da non valere la pena, come le righe di KDE.

Panda' tracciare Moduli

Che DataFrames hanno da offrire in termini di visualizzazione non è troppo nuovo per noi. Tuttavia, il modulo sottostante che chiamano, pandas.plotting lo fa. Il plotting modulo ha diverse funzioni che possiamo usare, come autocorrelation_plot(), bootstrap_plot()e scatter_matrix().

Ciascuno di questi accetta sia a Series o DataFrame, a seconda del tipo di visualizzazione che stanno producendo, oltre a determinati parametri per le specifiche di stampa e per scopi di stile.

Trama Bootstrap

Bootstrapping è il processo di campionamento casuale (con sostituzione) di un set di dati e di calcolo di misure di accuratezza come pregiudizio, varianza ed intervalli di confidenza per i campioni casuali. “Con sostituzione”, in pratica, significa che ogni elemento scelto casualmente può essere nuovamente selezionato. Senza sostituzione significa che dopo ogni elemento selezionato casualmente, viene rimosso dal pool per il campione successivo.

A Trama Bootstrap, creato da Pandas esegue il bootstrap delle statistiche medie, medie e medie di un set di dati, basate sul campione size, dopodiché la trama viene successivamente mostrata tramite plt.show(). Gli argomenti predefiniti per size ed samples sono 50 ed 500 rispettivamente.

Ciò significa che per una funzionalità, eseguiamo il campionamento 50 valori. Quindi, viene generato un sottocampione di 50 elementi (dati sintetici) per quei 50 valori e per essi viene calcolata una statistica riassuntiva (media/mediana/media). Questo processo viene ripetuto 500 volte, quindi alla fine abbiamo 500 statistiche riassuntive:

import pandas as pd
from matplotlib import pyplot as plt df = pd.read_csv('./datasets/gdp_csv.csv')
df_eu = df.loc[df['Country Name'] == 'European Union'] pd.plotting.bootstrap_plot(df_eu['Value']) plt.show()

Visualizzazione dei dati con Pandas PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

Grafico di autocorrelazione

Grafici di autocorrelazione vengono utilizzati per verificare la casualità dei dati, per i dati di serie temporali. Multiplo autocorrelazioni vengono calcolati per timestamp diversi e, se i dati sono veramente casuali, la correlazione sarà prossima allo zero. In caso contrario, la correlazione sarà maggiore di zero.

Tracciamo due grafici di autocorrelazione, uno con il nostro Valore caratteristica e uno con a Series riempito con valori casuali:

import pandas as pd
import numpy as np
from matplotlib import pyplot as plt df = pd.read_csv('gdp_csv.csv')
# Filter DataFrame for the EU
df_eu = df.loc[df['Country Name'] == 'European Union']
# Generate 50 random integers between 0 and 100, and turn into a Series
random_series = pd.Series(np.random.randint(0, 100, size=50)) # Plot Autocorrelation Plot for the *Value* feature
pd.plotting.autocorrelation_plot(df_eu['Value'])
# Plot Autocorrelation Plot for the *random_series*
pd.plotting.autocorrelation_plot(random_series) plt.show()

Il grafico di autocorrelazione per il random_series dovrebbe girare 0, poiché si tratta di dati casuali, mentre il grafico per il Value la funzione non:

Visualizzazione dei dati con Pandas PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

Vale la pena notare che l'autocorrelazione ne misura uno modulo di casualità, in quanto non correlati, ma esistono dati non casuali. Se non è casuale, ma non ha correlazioni significative, il diagramma di autocorrelazione indicherebbe che i dati sono casuali.

Matrici di dispersione

Matrici di dispersione trama A griglia di grafici a dispersione per tutte le funzionalità rispetto a tutte le funzionalità. Dal momento che questo inevitabilmente confronta anche ogni caratteristica con se stessa, il diagonale dove ciò accade viene generalmente sostituito con a Istogramma di quella funzione, piuttosto che un grafico a dispersione. Matrici di dispersione sono anche conosciuti come Trame di coppiae Seaborn offre a pairplot() funzione solo per questo.

Il scatter_matrix() la funzione accetta a DataFrame e produce una matrice di dispersione per tutte le sue caratteristiche numeriche e restituisce un array 2D di Axes istanze che compongono la matrice di dispersione. Per modificare qualsiasi cosa su di loro, ti consigliamo di scorrere tra di loro:

import pandas as pd
import numpy as np
from matplotlib import pyplot as plt df = pd.read_csv('worldHappiness2019.csv') axes = pd.plotting.scatter_matrix(df, diagonal='hist') for ax in axes.flatten(): # Rotate back to 0 degrees since they're automatically rotated by 90 ax.yaxis.label.set_rotation(0) # As to not overlap with the Axes instances, set the ticklabel # alignment to 'right' ax.yaxis.label.set_ha('right') plt.show()

Ciò si traduce in una matrice di dispersione piuttosto ampia di tutte le funzionalità rispetto a tutte le altre funzionalità:

Visualizzazione dei dati con Pandas PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

Puoi anche passare nel diagonal argomento, che accetta 'hist' or 'kde' per specificare il tipo di diagramma di distribuzione che desideri tracciare sulla diagonale, nonché alpha, specificando la traslucenza dei marker nei grafici a dispersione.

Timestamp:

Di più da Impilamento