Adatvizualizáció a Pandas PlatoBlockchain adatintelligenciával. Függőleges keresés. Ai.

Adatvizualizáció pandákkal

A Pandák eddig is segítettek bennünket az Adat-előfeldolgozás fázisában. Bár az egyik esetben a hisztogramok létrehozása során a Pandas egy másik modulját is felhasználtuk – plotting.

Eddig szándékosan kerültük, mert a korábbi bevezetése több kérdést vetne fel, mint amennyi választ adott. Mégpedig Pandák és a A Matplotlib annyira gyakori és mindenütt jelenlévő duó volt, hogy a Pandas elkezdte integrálni a Matplotlib funkcióit. Azt súlyosan a Matplotlib-re támaszkodik minden tényleges ábrázolás elvégzéséhez, és sok Matplotlib függvényt találhat a forráskódban. Alternatív megoldásként más háttérprogramokat is használhat a nyomtatáshoz, mint pl Teljességgel és a Bokeh.

A Pandas azonban bemutat néhány olyan cselekményt is nem a Matplotlib szabványos cselekménytípusainak egy része, mint pl KDE-k, Andrews Curves, Bootstrap Plots és a Scatter Mátrixok.

A plot() egy Panda funkciója DataFrame által meghatározott háttérprogramot használja plotting.backend, és attól függően, hogy kind argumentum – diagramot generál az adott könyvtár felhasználásával. Mivel ezek közül sok átfedi egymást, nincs értelme olyan cselekménytípusokat lefedni, mint pl line, bar, hist és a scatter. Nagyjából ugyanazokat a terveket fogják előállítani ugyanazzal a kóddal, mint amit eddig a Matplotlib-el csináltunk.

Csak röviden tekintjük át a plot() funkciót, mivel a mögöttes mechanizmust eddig feltárták. Ehelyett összpontosítsunk néhány olyan cselekményre, amelyet mi nem tud már készen áll a Matplotlib-re.

Ez egy nagyon rövid fejezet lesz, mivel a Pandák ábrázolási és vizualizációs képességei elhalványulnak a Matplotlibhez képest – de még mindig hasznos tudni ezek közül néhányat, valamint tisztában lenni azzal a képességgel, hogy pl. DataFrames közvetlenül.

A DataFrame.plot() Funkció

A plot() függvény elfogadja x és a y funkciók, és a kind érv. Alternatív megoldásként, hogy elkerüljük a kind érv, hívhatod is DataFrame.plot.kind() helyett, és adja át a x és a y jellemzők.

Az elfogadott értékek a kind érvek a következők: line, bar, barh (vízszintes sáv), hist, box, kde, density (szinonimája a kde), area, pie, scatter és a hexbin (hasonlóan a hőtérképhez).

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

Ahelyett, hogy a Series például a Matplotlib esetében – elég megadni a oszlopnevek, és mivel Ön hívja a plot() funkció a DataFrame amit vizualizál, a Pandák könnyen leképezhetik ezeket a karakterlánc-értékeket a megfelelő oszlopnevekre.

Ezen hívások mindegyike újat hoz létre Figure példányt, és ábrázolja rajta a megfelelő értékeket:

Adatvizualizáció a Pandas PlatoBlockchain adatintelligenciával. Függőleges keresés. Ai.

Több tengely ábrázolása ugyanazon Figure, készíthetsz a Figure és egy vagy több Axes keresztül plt.subplots() és rendelje hozzá a megfelelőt Axes hoz ax mindegyik érve plot.plot_type() hívás:

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

Néhány standard argumentum, mint például a rotation érvek valójában különböznek a plot() hívásokat. Például, rotation -re rövidül rot. Ez kissé bonyolulttá teszi csak válts a Matplotlib és a Pandas között, mivel nagy valószínűséggel a dokumentációs oldalakra kerülsz, csak ellenőrizve, hogy melyik argumentum alkalmazható és melyik nem.

Most ahelyett, hogy újat hozna létre Figure or Axes Például ezeknek a parcelláknak mindegyike a megfelelő helyen lesz elhelyezve Axes esetek, amelyekkel elláttuk őket:

Adatvizualizáció a Pandas PlatoBlockchain adatintelligenciával. Függőleges keresés. Ai.

Általánosságban elmondható, hogy a Pandákkal való ábrázolás kényelmes és gyors – de még így is, a Bar Plots, Line Plots és Box Plots ábrázolásához valószínűleg érdemes a Matplotlib-et használni. A Pandák elkerülhetetlenül ezt a mögöttes motort használják, és több testreszabási lehetőséggel is rendelkezik, és nem kell emlékeznie egy új argumentumkészletre, amelyet a Pandas cselekményekkel használhat.

Ennek ellenére néhány telek esetében érdemes előnyben részesíteni pandák, mivel ezeket manuálisan kell elkészíteni a Matplotlibben, és némelyiket olyan nehéz elkészíteni, hogy nem éri meg a fáradságot, mint például a KDE sorok.

pandák ábrázolás Modulok

Mit DataFrameA vizualizációs kínálat nem túl új számunkra. Az általuk nevezett mögöttes modul azonban pandas.plotting csinál. Az plotting modulnak számos olyan funkciója van, amelyeket használhatunk, mint pl autocorrelation_plot(), bootstrap_plot()és scatter_matrix().

Ezek mindegyike elfogadja vagy a Series vagy DataFrame, attól függően, hogy milyen típusú vizualizációt hoznak létre, valamint bizonyos paramétereket a nyomtatási specifikáció és a stílus céljára.

Bootstrap Plot

bootstrapping egy adathalmaz véletlenszerű mintavételének (cseréjével) folyamata, és kiszámítják a pontosság mértékét, mint pl. előítélet, variancia és a megbízhatósági intervallumok a véletlenszerű mintákhoz. A „cserével” a gyakorlatban azt jelenti, hogy minden véletlenszerűen kiválasztott elem újra kiválasztható. Csere nélkül azt jelenti, hogy minden véletlenszerűen kiválasztott elem után eltávolítjuk a következő minta készletéből.

A Bootstrap PlotA Pandas által létrehozott , a minta alapján egy adatkészlet átlagos, medián és középső statisztikáit bootstrapálja size, amely után a cselekmény a következőn keresztül jelenik meg plt.show(). A következő alapértelmezett argumentumai size és a samples faliórái 50 és a 500 illetőleg.

Ez azt jelenti, hogy egy jellemzőnél mintát veszünk 50 értékeket. Ezután egy 50 elemből álló részmintát generálunk (szintetikus adatok) ezekhez az 50 értékekhez, és kiszámítjuk az összefoglaló statisztikát (átlag/medián/középtartomány). Ez a folyamat megismétlődik 500 alkalommal, így végül 500 összefoglaló statisztikát kapunk:

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

Adatvizualizáció a Pandas PlatoBlockchain adatintelligenciával. Függőleges keresés. Ai.

Autokorrelációs diagram

Autokorrelációs diagramok az adatok véletlenszerűségének, idősoros adatok ellenőrzésére szolgálnak. Többszörös autokorrelációk különböző időbélyegekre számítanak ki, és ha az adatok valóban véletlenszerűek - a korreláció közel nulla lesz. Ha nem, a korreláció nagyobb lesz, mint nulla.

Ábrázoljunk két autokorrelációs diagramot – az egyiket a miénkkel Érték funkció, és egy a Series tele véletlenszerű értékekkel:

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

Az autokorrelációs diagram a random_series körül kellene forognia 0, mivel ez véletlenszerű adat, míg a diagram a Value a funkció nem:

Adatvizualizáció a Pandas PlatoBlockchain adatintelligenciával. Függőleges keresés. Ai.

Érdemes megjegyezni, hogy az autokorreláció egyet mér forma a véletlenszerűség, mivel nem korrelált, de nem véletlenszerű adatok léteznek. Ha nem véletlenszerű, de nincs szignifikáns korrelációja – az Autokorrelációs diagram azt jelzi, hogy az adatok véletlenszerűek.

Scatter Mátrixok

Scatter Mátrixok telek a rács Scatter Plots az összes funkcióhoz az összes tulajdonsághoz képest. Mivel ez elkerülhetetlenül minden tulajdonságot önmagával is összehasonlít – a átlós ahol ez megtörténik, általában a helyettesíti hisztogram ennek a tulajdonságnak, nem pedig egy szóródiagramnak. Scatter Mátrixok más néven Páros telkek, a Seaborn pedig a pairplot() funkció csak erre.

A scatter_matrix() függvény elfogadja a DataFrame és létrehoz egy Scatter Matrixot az összes numerikus jellemzőjéhez, és visszaadja a 2D tömböt. Axes példányok, amelyek a Scatter Matrixot tartalmazzák. Ha bármit módosítani szeretne rajtuk, ismételje meg őket:

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

Ez egy meglehetősen nagy szórómátrixot eredményez az összes jellemzőből az összes többi jellemzővel szemben:

Adatvizualizáció a Pandas PlatoBlockchain adatintelligenciával. Függőleges keresés. Ai.

Be is lehet lépni a diagonal érv, amely elfogadja 'hist' or 'kde' annak megadásához, hogy milyen típusú eloszlási diagramot szeretne ábrázolni az átlón, valamint alpha, amely megadja a markerek áttetszőségét a Scatter Plots-ban.

Időbélyeg:

Még több Stackabus