Vizualizarea datelor cu Pandas PlatoBlockchain Data Intelligence. Căutare verticală. Ai.

Vizualizarea datelor cu Pandas

Pandas ne-a ajutat până acum în faza de preprocesare a datelor. Deși, într-un caz, în timpul creării histogramelor, am folosit și un alt modul de la Pandas - plotting.

Am evitat în mod intenționat până acum, deoarece introducerea lui mai devreme ar ridica mai multe întrebări decât a răspuns. Și anume, panda și Matplotlib a fost un duo omniprezent atât de comun, încât Pandas a început să integreze funcționalitatea Matplotlib. Aceasta puternic se bazează pe Matplotlib pentru a face orice plotare reală și veți găsi multe funcții Matplotlib împachetate în codul sursă. Alternativ, puteți utiliza alte backend-uri pentru trasare, cum ar fi Complot și Bokeh.

Cu toate acestea, Pandas ne prezintă și câteva intrigi care nu sunt o parte din tipurile de grafice standard ale Matplotlib, cum ar fi KDE-uri, Curbele Andrews, Comploturi Bootstrap și Matrici de dispersie.

plot() funcția unui panda DataFrame folosește backend-ul specificat de plotting.backend, și în funcție de kind argument – ​​generează o diagramă folosind biblioteca dată. Deoarece multe dintre acestea se suprapun – nu are rost să acoperiți tipuri de parcele, cum ar fi line, bar, hist și scatter. Vor produce cam aceleași parcele cu același cod pe care le-am făcut până acum cu Matplotlib.

Vom arunca o privire doar pe scurt la plot() funcția deoarece mecanismul de bază a fost explorat până acum. În schimb, să ne concentrăm asupra unora dintre comploturile pe care le avem nu poate se descurcă deja cu Matplotlib.

Acesta va fi un capitol foarte scurt, deoarece capacitățile de reprezentare și vizualizare ale lui Pandas palid în comparație cu Matplotlib – dar este totuși util să știți despre unele dintre acestea, precum și să fiți conștienți de capacitatea de a trasa din DataFrames direct.

DataFrame.plot() Funcţie

plot() funcția acceptă x și y caracteristici și a kind argument. Alternativ, pentru a evita kind argument, poti si suna DataFrame.plot.kind() în schimb, și treci în x și y caracteristici.

Valorile acceptate pentru kind argumente sunt: line, bar, barh (bara orizontala), hist, box, kde, density (sinonim pentru kde), area, pie, scatter și hexbin (similar cu o hartă termică).

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()

În loc să ofere Series cazuri ca noi pentru Matplotlib – este suficient să furnizați nume de coloane, și din moment ce sunați la plot() funcție pe DataFrame pe care le vizualizați, este ușor pentru Pandas să mapeze aceste valori de șir la numele de coloane adecvate.

Fiecare dintre aceste apeluri face un nou Figure instanță și trasează valorile adecvate pe ea:

Vizualizarea datelor cu Pandas PlatoBlockchain Data Intelligence. Căutare verticală. Ai.

Pentru a trasa mai multe axe pe același Figure, puteți face o Figure și una sau mai multe Axes de plt.subplots() și atribuiți cel corespunzător Axes la ax argumentul fiecăruia plot.plot_type() apel:

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()

Unele dintre argumentele standard, cum ar fi rotation argument sunt de fapt diferite în plot() apeluri. De exemplu, rotation este scurtat la rot. Acest lucru face să fie puțin complicat doar comuta între Matplotlib și Pandas, deoarece cel mai probabil veți ajunge în paginile de documentație, doar verificând ce argumente pot fi aplicate și care nu.

Acum, în loc să creăm un nou Figure or Axes de exemplu, fiecare dintre aceste parcele va fi amplasat în locul corespunzător Axes cazuri în care le-am furnizat:

Vizualizarea datelor cu Pandas PlatoBlockchain Data Intelligence. Căutare verticală. Ai.

În general, trasarea cu Pandas este convenabilă și rapidă – dar chiar și așa, pentru a trasa diagrame cu bare, diagrame cu linii și diagrame cu case, probabil că veți dori să utilizați Matplotlib. Este atât motorul de bază pe care Pandas îl folosește în mod inevitabil, cât și mai multe opțiuni de personalizare și nu va trebui să vă amintiți un nou set de argumente pe care le puteți utiliza cu diagramele Pandas.

Acestea fiind spuse, pentru unele parcele, poate doriți să preferați ursi panda, deoarece ar trebui să fie făcute manual în Matplotlib, iar unele dintre ele sunt atât de complicate încât nu merită efortul, cum ar fi liniile KDE.

panda complot Module

Ce DataFrameCe trebuie să ofere în ceea ce privește vizualizarea nu este prea nou pentru noi. Cu toate acestea, modulul de bază pe care îl numesc, pandas.plotting face. plotting modulul are mai multe funcții pe care le putem folosi, cum ar fi autocorrelation_plot(), bootstrap_plot(), și scatter_matrix().

Fiecare dintre acestea acceptă fie a Series sau un DataFrame, în funcție de tipul de vizualizare pe care îl produc, precum și de anumiți parametri pentru specificarea grafică și în scopuri de stilizare.

Bootstrap Plot

bootstrapping este procesul de eșantionare aleatorie (cu înlocuire) a unui set de date și de calculare a măsurilor de acuratețe, cum ar fi părtinire, dezacord și intervale de încredere pentru probele aleatorii. „Cu înlocuire”, în termeni practici, înseamnă că fiecare element selectat aleatoriu poate fi selectat din nou. Fără înlocuire înseamnă că după fiecare element selectat aleatoriu, acesta este eliminat din grup pentru următorul eșantion.

A Bootstrap Plot, creat de Pandas bootstraps media, mediana și statisticile medii ale unui set de date, pe baza eșantionului size, după care intriga este afișată ulterior prin plt.show(). Argumentele implicite pentru size și samples sunt 50 și 500 respectiv.

Aceasta înseamnă că pentru o caracteristică, eșantionăm 50 valorile. Apoi, se generează un subeșantion de 50 de elemente (date sintetice) pentru acele 50 de valori și se calculează o statistică rezumativă (medie/mediană/interval mediu) pentru acestea. Acest proces se repetă 500 de ori, așa că în cele din urmă, avem 500 de statistici rezumative:

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()

Vizualizarea datelor cu Pandas PlatoBlockchain Data Intelligence. Căutare verticală. Ai.

Graficul de autocorelare

Diagrame de autocorelare sunt utilizate pentru a verifica caracterul aleatoriu al datelor, pentru datele din serii temporale. Multiplu autocorelații sunt calculate pentru marcaje temporale diferite, iar dacă datele sunt cu adevărat aleatorii – corelația va fi aproape de zero. Dacă nu, corelația va fi mai mare decât zero.

Să reprezentăm două diagrame de autocorelare – unul cu al nostru Valoare caracteristică și unul cu a Series umplut cu valori aleatorii:

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()

Graficul de autocorelare pentru random_series ar trebui să se învârtă în jurul 0, deoarece sunt date aleatorii, în timp ce complot pentru Value caracteristica nu va:

Vizualizarea datelor cu Pandas PlatoBlockchain Data Intelligence. Căutare verticală. Ai.

Este demn de remarcat faptul că Autocorelația măsoară unul formă ale aleatoriei, ca necorelate, dar există date non-aleatorie. Dacă nu este aleatoriu, dar nu are corelații semnificative - Graficul de autocorelare ar indica faptul că datele sunt aleatorii.

Matrici de dispersie

Matrici de dispersie complot a grilă de diagrame de dispersie pentru toate caracteristicile față de toate caracteristicile. Deoarece acest lucru compară în mod inevitabil fiecare caracteristică cu ea însăși, de asemenea - diagonală unde se întâmplă acest lucru este de obicei înlocuit cu a Histogramă a acestei caracteristici, mai degrabă decât un diagramă de dispersie. Matrici de dispersie sunt cunoscute și ca Pereche Plots, iar Seaborn oferă a pairplot() functioneaza doar pentru asta.

scatter_matrix() funcția acceptă a DataFrame și produce o matrice Scatter pentru toate caracteristicile sale numerice și returnează o matrice 2D de Axes instanțe care cuprind Scatter Matrix. Pentru a modifica orice despre ele, veți dori să le repetați:

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()

Acest lucru are ca rezultat o matrice de dispersie destul de mare a tuturor caracteristicilor față de toate celelalte caracteristici:

Vizualizarea datelor cu Pandas PlatoBlockchain Data Intelligence. Căutare verticală. Ai.

De asemenea, puteți trece în diagonal argument, care acceptă 'hist' or 'kde' pentru a specifica ce tip de diagramă de distribuție doriți să reprezentați pe diagonală, precum și alpha, specificând transluciditatea markerilor din diagramele de dispersie.

Timestamp-ul:

Mai mult de la Stackabuse