Vizualizacija podatkov s Pandas PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.

Vizualizacija podatkov s Pandas

Panda nam je do sedaj pomagala v fazi predprocesiranja podatkov. Čeprav smo v enem primeru med ustvarjanjem histogramov uporabili tudi drug modul iz Pande – plotting.

Doslej smo se mu namenoma izogibali, saj bi z njegovo zgodnjo uvedbo sprožilo več vprašanj, kot pa odgovorov. Pande namreč in Matplotlib je bil tako pogost in vseprisoten duo, da je Pandas začel integrirati funkcionalnost Matplotliba. To močno se za kakršno koli dejansko risanje zanaša na Matplotlib in našli boste veliko funkcij Matplotlib, zavitih v izvorno kodo. Lahko pa uporabite tudi druga ozadja za risanje, kot je npr Naklepno in Bokeh.

Vendar pa nam Pandas predstavi tudi nekaj zapletov, ki ne del Matplotlibovih standardnih vrst risb, kot je npr KDE, Andrews Curves, Bootstrap Plots in Raztresene matrike.

O plot() funkcijo pande DataFrame uporablja zaledje, ki ga določa plotting.backend, in odvisno od kind argument – ​​ustvari graf z uporabo dane knjižnice. Ker se veliko teh prekriva – nima smisla pokrivati ​​vrst parcel, kot je line, bar, hist in scatter. Izdelali bodo skoraj enake risbe z isto kodo, kot smo to počeli doslej z Matplotlibom.

Le na kratko si bomo ogledali plot() delovanje, saj je bil osnovni mehanizem doslej raziskan. Namesto tega se osredotočimo na nekatere zaplete, ki smo jih ne more že brez težav z Matplotlibom.

To bo zelo kratko poglavje, saj so Pandine zmožnosti risanja in vizualizacije blede v primerjavi z Matplotlibom – vendar je še vedno koristno poznati nekaj od teh, prav tako pa se zavedati zmožnosti risanja iz DataFrames neposredno.

O DataFrame.plot() funkcija

O plot() funkcija sprejme x in y lastnosti in a kind prepir. Druga možnost je, da se izognete kind argument, lahko tudi pokličete DataFrame.plot.kind() namesto tega in prenesite v x in y lastnosti.

Sprejete vrednosti za kind argumenti so: line, bar, barh (vodoravna vrstica), hist, box, kde, density (sinonim za kde), area, pie, scatter in hexbin (podobno kot 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()

Namesto zagotavljanja Series primere, kot jih izvajamo za Matplotlib – dovolj je, da zagotovite imena stolpcev, in ker kličete plot() funkcijo na DataFrame vizualizirate, je za Pande enostavno preslikati te vrednosti nizov v ustrezna imena stolpcev.

Vsak od teh klicev naredi novega Figure primerek in nanj izriše ustrezne vrednosti:

Vizualizacija podatkov s Pandas PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.

Za risanje več osi ​​na isto Figure, lahko naredite a Figure in enega ali več Axes preko plt.subplots() in dodelite ustrezne Axes k ax argument vsakega plot.plot_type() klic:

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

Nekateri standardni argumenti, kot je rotation argumenti so v resnici drugačni plot() klice. na primer rotation je skrajšan na rot. Zaradi tega je nekoliko težavno samo zamenjaj med Matplotlib in Pandas, saj boste najverjetneje končali na straneh z dokumentacijo in samo preverjali, katere argumente je mogoče uporabiti in katere ne.

Zdaj namesto ustvarjanja novega Figure or Axes Na primer, bo vsaka od teh parcel nameščena v ustreznem Axes primerki, ki smo jim jih dobavili:

Vizualizacija podatkov s Pandas PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.

Na splošno je risanje s programom Pandas priročno in hitro – a kljub temu boste za risanje črtnih, črtnih in škatlastih izrisov verjetno želeli uporabiti Matplotlib. To je osnovni mehanizem, ki ga Panda neizogibno uporablja, ima pa tudi več možnosti prilagajanja in ne bo vam treba zapomniti novega nabora argumentov, ki jih lahko uporabite z izrisi Panda.

Kot rečeno, za nekatere parcele boste morda želeli pand, saj bi jih bilo treba ročno izdelati v Matplotlibu, izdelava nekaterih pa je tako težavna, da ni vredno truda, na primer vrstice KDE.

pande narisati Moduli

Kaj DataFrameponudba v smislu vizualizacije za nas ni preveč nova. Vendar osnovni modul, ki ga imenujejo, pandas.plotting naredi. The plotting modul ima več funkcij, ki jih lahko uporabljamo, kot npr autocorrelation_plot(), bootstrap_plot()in scatter_matrix().

Vsak od teh sprejme bodisi a Series ali DataFrame, odvisno od vrste vizualizacije, ki jo proizvajajo, kot tudi določene parametre za specifikacijo risanja in namene oblikovanja.

Bootstrap Plot

Zagotavljanje zagona je postopek naključnega vzorčenja (z zamenjavo) nabora podatkov in izračunavanja mer točnosti, kot je npr. pristranskosti, variance in intervali zaupanja za naključne vzorce. »Z zamenjavo« v praksi pomeni, da je vsak naključno izbran element mogoče znova izbrati. Brez zamenjave pomeni, da se po vsakem naključno izbranem elementu odstrani iz skupine za naslednji vzorec.

A Bootstrap Plot, ki ga ustvari Pandas, zažene povprečno, srednjo in srednjo statistiko nabora podatkov na podlagi vzorca size, po katerem je ploskev naknadno prikazana preko plt.show(). Privzeti argumenti za size in samples so 50 in 500 oz.

To pomeni, da za funkcijo vzorčimo 50 vrednote. Nato se ustvari 50-elementni podvzorec (sintetični podatki) za teh 50 vrednosti in zanje se izračuna povzetek statistike (povprečje/mediana/srednji obseg). Ta postopek se ponavlja 500 krat, tako da imamo na koncu 500 povzetkov statistike:

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

Vizualizacija podatkov s Pandas PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.

Avtokorelacijski načrt

Avtokorelacijske ploskve se uporabljajo za preverjanje naključnosti podatkov za podatke časovnih vrst. Večkraten avtokorelacije se izračunajo za različne časovne žige in če so podatki resnično naključni – bo korelacija blizu ničle. V nasprotnem primeru bo korelacija večja od nič.

Narišimo dve avtokorelacijski ploskvi – eno z našim vrednost funkcija in ena z a Series napolnjena z naključnimi vrednostmi:

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

Avtokorelacijski načrt za random_series bi se moral vrteti okoli 0, saj gre za naključne podatke, medtem ko je zaplet za Value funkcija ne bo:

Vizualizacija podatkov s Pandas PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.

Omeniti velja, da avtokorelacija meri eno obrazec naključnosti, saj obstajajo nekorelirani, vendar nenaključni podatki. Če ni naključen, vendar nima nobenih pomembnih korelacij, bi avtokorelacijski prikaz pokazal, da so podatki naključni.

Raztresene matrike

Raztresene matrike parcela a Mreža razpršenih grafov za vse funkcije v primerjavi z vsemi značilnostmi. Ker to vsako lastnost neizogibno primerja s samo seboj, tudi – diagonala kjer se to zgodi, se običajno nadomesti z a Histogram te funkcije, namesto raztresenega grafa. Raztresene matrike so znani tudi kot Parne parcele, Seaborn pa ponuja a pairplot() funkcija samo za to.

O scatter_matrix() funkcija sprejema a DataFrame in izdela matriko razpršitve za vse njene numerične značilnosti ter vrne 2D niz Axes primerki, ki sestavljajo matriko raztresenosti. Če želite na njih kar koli prilagoditi, jih boste želeli ponoviti:

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

Posledica tega je precej velika matrika raztresenosti vseh funkcij proti vsem drugim funkcijam:

Vizualizacija podatkov s Pandas PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.

Lahko tudi mimo v diagonal argument, ki sprejema 'hist' or 'kde' da določite, kakšno vrsto distribucijske risbe želite narisati na diagonali, kot tudi alpha, ki določa prosojnost označevalcev v razpršenih grafih.

Časovni žig:

Več od Stackabuse