Andmete visualiseerimine Pandas PlatoBlockchain Data Intelligence'iga. Vertikaalne otsing. Ai.

Andmete visualiseerimine Pandadega

Pandas on meid seni aidanud andmete eeltöötluse etapis. Kuigi ühel juhul oleme histogrammide loomisel kasutanud ka teist Pandade moodulit – plotting.

Siiani oleme seda sihikindlalt vältinud, sest selle varasem tutvustamine tekitaks rohkem küsimusi, kui vastaks. Nimelt Pandad ja Matplotlib oli nii tavaline kõikjal esinev duo, et Pandas on alustanud Matplotlibi funktsionaalsuse integreerimist. See tugevalt toetub Matplotlibile mis tahes tegeliku graafiku tegemisel ja palju Matplotlibi funktsioone on pakitud lähtekoodi. Teise võimalusena saate joonistamiseks kasutada muid taustaprogramme, näiteks Kavandatud ja Bokeh.

Siiski tutvustab Pandas meile ka paari süžeed, mis ei ole osa Matplotlibi standardsetest süžeetüüpidest, nt KDE-d, Andrews Curves, Bootstrap Plots ja Hajumismaatriksid.

. plot() Panda funktsioon DataFrame kasutab poolt määratud taustaprogrammi plotting.backend, ja olenevalt kind argument – ​​genereerib antud teeki kasutades graafiku. Kuna paljud neist kattuvad – pole mõtet katta süžeetüüpe nagu line, bar, hist ja scatter. Nad toodavad sama koodiga palju samu graafikuid, mida oleme seni teinud Matplotlibiga.

Heidame vaid põgusa pilgu sellele plot() funktsiooni, kuna selle aluseks olevat mehhanismi on seni uuritud. Selle asemel keskendume mõnele süžeele, mida me ei saa juba Matplotlibiga.

See on väga lühike peatükk, kuna Pandade joonistamis- ja visualiseerimisvõimalused on Matplotlibiga võrreldes kahvatud, kuid siiski on kasulik teada mõnda neist ja olla teadlik võimalusest joonistada DataFrames otse.

. DataFrame.plot() funktsioon

. plot() funktsioon aktsepteerib x ja y funktsioonid ja a kind argument. Teise võimalusena, et vältida kind argument, võite ka helistada DataFrame.plot.kind() selle asemel ja sisestage x ja y funktsioone.

Aktsepteeritud väärtused kind argumendid on järgmised: line, bar, barh (horisontaalne riba), hist, box, kde, density (sünonüüm kde), area, pie, scatter ja hexbin (sarnaselt Heatmapiga).

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

Selle asemel, et pakkuda Series näiteks Matplotlibi puhul – piisab, kui pakkuda veergude nimedja kuna te helistate plot() funktsioon DataFrame kui visualiseerite, on Pandadel lihtne need stringiväärtused vastavate veergude nimedega vastendada.

Iga selline kõne teeb uue Figure eksemplar ja joonistab sellele sobivad väärtused:

Andmete visualiseerimine Pandas PlatoBlockchain Data Intelligence'iga. Vertikaalne otsing. Ai.

Mitme telje joonistamiseks samale Figure, saate teha a Figure ja üks või mitu Axes kaudu plt.subplots() ja määrake sobiv Axes Euroopa ax iga argument plot.plot_type() helistama:

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

Mõned standardargumendid, näiteks rotation argumendid on tegelikult erinevad plot() kõned. Näiteks, rotation on lühendatud rot. See muudab selle pisut keeruliseks lihtsalt vaheta Matplotlibi ja Pandase vahel, kuna suure tõenäosusega jõuate dokumentatsioonilehtedele, kontrollides, milliseid argumente saab rakendada ja milliseid mitte.

Nüüd, selle asemel, et luua uus Figure or Axes Näiteks paigutatakse kõik need krundid vastavasse kohta Axes juhtudel, mille oleme neile varustanud:

Andmete visualiseerimine Pandas PlatoBlockchain Data Intelligence'iga. Vertikaalne otsing. Ai.

Üldiselt on Pandadega joonistamine mugav ja kiire, kuid isegi nii on joondiagrammide, joonjoonte ja kastigraafikute joonistamiseks tõenäoliselt vaja kasutada Matplotlibi. See on nii aluseks olev mootor, mida Pandas paratamatult kasutab, kui ka sellel on rohkem kohandamisvõimalusi ning te ei pea meeles pidama uut argumentide komplekti, mida saate Pandade süžeedega kasutada.

Nagu öeldud, võiksite mõne krundi puhul eelistada Pandad, kuna need tuleb Matplotlibis käsitsi teha ja mõned neist on nii vaevalised, et pole vaeva väärt, näiteks KDE read.

pandad joonistamine moodulid

M DataFrameSee, mida visualiseerimisel pakkuda on, pole meie jaoks uus. Kuid aluseks olev moodul, mida nad kutsuvad, pandas.plotting teeb. plotting moodulil on mitmeid funktsioone, mida saame kasutada, näiteks autocorrelation_plot(), bootstrap_plot()ja scatter_matrix().

Kõik need aktsepteerivad kas a Series või DataFrame, olenevalt visualiseerimise tüübist, mida nad toodavad, samuti teatud parameetritest joonise spetsifikatsioonide ja stiili eesmärkidel.

Bootstrap Plot

Bootstrapping on andmestiku juhusliku valimi (asendamisega) ja täpsuse mõõtmise, näiteks erapoolikus, dispersioon ja usaldusvahemikud juhuslike valimite jaoks. "Asendamisega" tähendab praktikas seda, et iga juhuslikult valitud elemendi saab uuesti valida. Ilma asendamiseta tähendab, et pärast iga juhuslikult valitud elementi eemaldatakse see järgmise proovi jaoks kogumist.

A Bootstrap Plot, mille on loonud Pandas, käivitab valimi põhjal andmestiku keskmise, mediaan- ja keskmise vahemiku statistika size, mille järel näidatakse graafikut edaspidi kaudu plt.show(). Vaikeargumendid size ja samples See on 50 ja 500 võrra.

See tähendab, et funktsiooni puhul võtame proovi 50 väärtused. Seejärel luuakse nende 50 väärtuse jaoks 50-elemendiline alamvalim (sünteetilised andmed) ja nende jaoks arvutatakse kokkuvõtlik statistika (keskmine/mediaan/keskvahemik). Seda protsessi korratakse 500 korda, nii et lõpuks on meil 500 kokkuvõtvat statistikat:

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

Andmete visualiseerimine Pandas PlatoBlockchain Data Intelligence'iga. Vertikaalne otsing. Ai.

Autokorrelatsiooni graafik

Autokorrelatsiooni graafikud kasutatakse andmete juhuslikkuse ja aegridade andmete kontrollimiseks. Mitu autokorrelatsioonid arvutatakse erinevate ajatemplite jaoks ja kui andmed on tõeliselt juhuslikud, on korrelatsioon nullilähedane. Kui ei, siis on korrelatsioon suurem kui null.

Joonistame kaks autokorrelatsioonigraafikut – üks meiega Väärtus funktsioon ja üks, millel on a Series täidetud juhuslike väärtustega:

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

Autokorrelatsiooni diagramm jaoks random_series peaks ringi käima 0, kuna tegemist on juhuslike andmetega, samas kui graafiku jaoks Value funktsioon ei:

Andmete visualiseerimine Pandas PlatoBlockchain Data Intelligence'iga. Vertikaalne otsing. Ai.

Väärib märkimist, et autokorrelatsioon mõõdab ühte vorm juhuslikkusest, kuna korrelatsioonita, kuid mittejuhuslikud andmed on olemas. Kui see pole juhuslik, kuid sellel pole olulisi korrelatsioone, näitab autokorrelatsiooni graafik, et andmed on juhuslikud.

Hajumismaatriksid

Hajumismaatriksid süžee a võre hajuvusdiagrammid kõigi funktsioonide ja kõigi funktsioonide jaoks. Kuna see võrdleb paratamatult iga omadust ka iseendaga – diagonaal kus see juhtub, asendatakse tavaliselt tähega a Histogramm selle funktsiooni, mitte hajuvusdiagrammi. Hajumismaatriksid on tuntud ka kui Paariskrundidja Seaborn pakub a pairplot() funktsioon just selleks.

. scatter_matrix() funktsioon aktsepteerib a DataFrame ja loob hajuvusmaatriksi kõigi selle numbriliste tunnuste jaoks ning tagastab 2D massiivi Axes eksemplare, mis sisaldavad hajuvusmaatriksit. Nende kohta midagi näpistamiseks tuleks neid korrata.

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

Selle tulemuseks on kõigi funktsioonide üsna suur hajuvusmaatriks võrreldes kõigi teiste funktsioonidega:

Andmete visualiseerimine Pandas PlatoBlockchain Data Intelligence'iga. Vertikaalne otsing. Ai.

Samuti saab sisse astuda diagonal argument, mis nõustub 'hist' or 'kde' et määrata, millist tüüpi jaotusgraafikut soovite diagonaalile joonistada, samuti alpha, täpsustades markerite läbipaistvust hajuvusdiagrammidel.

Ajatempel:

Veel alates Stackabus