Tietojen visualisointi Pandas PlatoBlockchain Data Intelligencellä. Pystysuuntainen haku. Ai.

Tietojen visualisointi Pandalla

Pandas on auttanut meitä toistaiseksi tietojen esikäsittelyvaiheessa. Vaikka olemme yhdessä tapauksessa käyttäneet histogrammeja luodessaan myös toista Pandasin moduulia – plotting.

Olemme toistaiseksi tarkoituksellisesti välttäneet sitä, koska sen ottaminen käyttöön aikaisemmin herättäisi enemmän kysymyksiä kuin vastaisi. Nimittäin Pandat ja Matplotlib oli niin yleinen, kaikkialla läsnä oleva kaksikko, että Pandas on alkanut integroida Matplotlibin toimintoja. Se raskaasti luottaa Matplotlibiin todellisen piirtämisen tekemisessä, ja monet Matplotlib-funktiot ovat käärittynä lähdekoodiin. Vaihtoehtoisesti voit käyttää piirtämiseen muita taustaohjelmia, kuten Plotly ja Bokeh.

Pandas esittelee meille kuitenkin myös muutaman juonen eivät ole osa Matplotlibin vakiojuontityyppejä, kuten KDE:t, Andrews Curves, Bootstrap Plots ja Sirontamatriisit.

- plot() Pandan tehtävä DataFrame käyttää määrittämää taustaohjelmaa plotting.backend, ja riippuen kind argumentti – luo kaavion käyttämällä annettua kirjastoa. Koska monet näistä ovat päällekkäisiä – ei ole mitään järkeä kattaa juonityyppejä, kuten line, bar, hist ja scatter. He tuottavat paljolti samat juonet samalla koodilla kuin olemme tehneet tähän asti Matplotlibin kanssa.

Katsomme vain lyhyesti plot() koska taustalla olevaa mekanismia on tähän mennessä tutkittu. Sen sijaan keskitytään joihinkin juoneistamme ei voi toimii jo helposti Matplotlibin kanssa.

Tämä on hyvin lyhyt luku, koska Pandan piirustus- ja visualisointiominaisuudet haalistuvat Matplotlibiin verrattuna – mutta on silti hyödyllistä tietää joistakin niistä sekä olla tietoinen kyvystä piirtää DataFrames suoraan.

- DataFrame.plot() Toiminto

- plot() toiminto hyväksyy x ja y ominaisuuksia ja a kind Perustelu. Vaihtoehtoisesti välttääksesi kind argumentti, voit myös soittaa DataFrame.plot.kind() sen sijaan ja syötä sisään x ja y ominaisuuksia.

Hyväksytyt arvot kind argumentit ovat: line, bar, barh (vaakasuora viiva), hist, box, kde, density (synonyymi sanalle kde), area, pie, scatter ja hexbin (samanlainen kuin lämpökartta).

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

Sen sijaan, että tarjoaisit Series tapauksia, kuten teemme Matplotlibille – riittää, että tarjoamme sarakkeiden nimet, ja koska soitat numeroon plot() toiminto päällä DataFrame visualisoimasi, Pandan on helppo yhdistää nämä merkkijonoarvot asianmukaisiin sarakkeiden nimiin.

Jokainen näistä puheluista muodostaa uuden Figure esimerkki ja piirtää sille sopivat arvot:

Tietojen visualisointi Pandas PlatoBlockchain Data Intelligencellä. Pystysuuntainen haku. Ai.

Useiden akselien piirtäminen samalle Figure, voit tehdä a Figure ja yksi tai useampi Axes kautta plt.subplots() ja määritä sopiva Axes että ax jokaisen argumentti plot.plot_type() puhelu:

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

Jotkut vakioargumenteista, kuten rotation argumentit ovat itse asiassa erilaisia plot() puhelut. Esimerkiksi, rotation on lyhennetty rot. Tämä tekee siitä hieman hankalaa vaihda vain Matplotlibin ja Pandasin välillä, koska päädyt todennäköisesti dokumentaatiosivuille tarkistamaan, mitä argumentteja voidaan käyttää ja mitä ei.

Nyt sen sijaan, että luot uuden Figure or Axes Esimerkiksi jokainen näistä tonteista sijoitetaan sopivaan paikkaan Axes tapauksissa, joissa olemme toimittaneet heille:

Tietojen visualisointi Pandas PlatoBlockchain Data Intelligencellä. Pystysuuntainen haku. Ai.

Yleisesti ottaen piirtäminen Pandalla on kätevää ja nopeaa – mutta silti kannattaa käyttää Matplotlibiä pylväskaavioiden, viivakaavioiden ja laatikkokaavioiden piirtämiseen. Se on sekä taustalla oleva moottori, jota Pandas väistämättä käyttää, että siinä on myös enemmän mukautusvaihtoehtoja, eikä sinun tarvitse muistaa uusia argumentteja, joita voit käyttää Pandas-juontien kanssa.

Tästä huolimatta joidenkin juonteiden kohdalla saatat haluta mieluummin Panda, koska ne on tehtävä manuaalisesti Matplotlibissä, ja jotkin niistä ovat niin vaivalloista tehdä, ettei se ole vaivan arvoista, kuten KDE-rivit.

pandat kuvaaja Moduulit

Mitä DataFramevisualisoinnin tarjonta ei ole meille liian uutta. Kuitenkin taustalla oleva moduuli, jota he kutsuvat, pandas.plotting tekee. plotting moduulissa on useita toimintoja, joita voimme käyttää, kuten autocorrelation_plot(), bootstrap_plot()ja scatter_matrix().

Jokainen näistä hyväksyy joko a Series tai DataFrame, riippuen niiden tuottaman visualisoinnin tyypistä sekä tietyistä piirtämis- ja tyyliparametreista.

Bootstrap-juoni

bootstrapping on prosessi, jossa tietojoukosta otetaan satunnainen näyte (korvaamalla) ja lasketaan tarkkuusmitat, kuten puolueellisuus, vaihtelu ja luottamusvälit satunnaisnäytteitä varten. "Korvaamalla" tarkoittaa käytännössä sitä, että jokainen satunnaisesti valittu elementti voidaan valita uudelleen. Ilman vaihtoa tarkoittaa, että jokaisen satunnaisesti valitun elementin jälkeen se poistetaan seuraavan näytteen poolista.

A Bootstrap-juoni, jonka Pandas on luonut, käynnistää tietojoukon keskiarvon, mediaanin ja keskialueen tilastot otoksen perusteella size, jonka jälkeen kaavio näytetään myöhemmin kautta plt.show(). Oletusargumentit for size ja samples olemme 50 ja 500 vastaavasti.

Tämä tarkoittaa, että otamme näytteen ominaisuudesta 50 arvot. Sitten luodaan 50 elementin osaotos (synteettinen data) näille 50 arvolle ja yhteenvetotilasto (keskiarvo/mediaani/keskialue) lasketaan niille. Tämä prosessi toistetaan 500 kertaa, joten lopulta meillä on 500 yhteenvetotilastoa:

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

Tietojen visualisointi Pandas PlatoBlockchain Data Intelligencellä. Pystysuuntainen haku. Ai.

Autokorrelaatiokaavio

Autokorrelaatiokaaviot käytetään tietojen satunnaisuuden tarkistamiseen aikasarjatietojen osalta. Useita autokorrelaatioita lasketaan erilaisille aikaleimoille, ja jos tiedot ovat todella satunnaisia ​​- korrelaatio on lähellä nollaa. Jos ei, korrelaatio on suurempi kuin nolla.

Piirretään kaksi autokorrelaatiokaaviota – yksi meidän kanssamme Arvo ominaisuus, ja yksi, jossa on a Series täynnä satunnaisia ​​arvoja:

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

Autokorrelaatiokaavio kohteelle random_series pitäisi pyöriä 0, koska se on satunnaista dataa, kun taas kaavio Value ominaisuus ei:

Tietojen visualisointi Pandas PlatoBlockchain Data Intelligencellä. Pystysuuntainen haku. Ai.

On syytä huomata, että autokorrelaatio mittaa yhtä muoto satunnaisuudesta, koska korreloimatonta, mutta ei-satunnaista dataa on olemassa. Jos se ei ole satunnainen, mutta sillä ei ole merkittäviä korrelaatioita – Autokorrelaatiokaavio osoittaisi, että tiedot ovat satunnaisia.

Sirontamatriisit

Sirontamatriisit juoni a ruudukko Scatter Plots kaikille ominaisuuksille kaikkia ominaisuuksia vastaan. Koska tämä väistämättä vertaa jokaista ominaisuutta myös itseensä - diagonaalinen jossa näin tapahtuu, korvataan yleensä a:lla histogrammi tämän ominaisuuden hajontakaavion sijaan. Sirontamatriisit tunnetaan myös nimellä Pari tontteja, ja Seaborn tarjoaa a pairplot() toiminto juuri tätä varten.

- scatter_matrix() toiminto hyväksyy a DataFrame ja tuottaa sirontamatriisin kaikille numeerisille ominaisuuksilleen ja palauttaa 2D-taulukon Axes tapauksia, jotka sisältävät sirontamatriisin. Jos haluat muokata niitä, sinun kannattaa selata niitä läpi:

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

Tämä johtaa melko suureen hajontamatriisiin kaikista ominaisuuksista verrattuna muihin ominaisuuksiin:

Tietojen visualisointi Pandas PlatoBlockchain Data Intelligencellä. Pystysuuntainen haku. Ai.

Voit myös kulkea sisään diagonal argumentti, joka hyväksyy 'hist' or 'kde' määrittääksesi minkä tyyppisen jakelukaavion haluat piirtää diagonaaliin, sekä alpha, joka määrittää merkkien läpikuultavuuden sirontakaavioissa.

Aikaleima:

Lisää aiheesta Stackabus