Datenvisualisierung mit Pandas PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Datenvisualisierung mit Pandas

Pandas hat uns bisher in der Phase der Datenvorverarbeitung unterstützt. Allerdings haben wir in einem Fall beim Erstellen von Histogrammen auch ein anderes Modul von Pandas verwendet – plotting.

Wir haben dies bisher bewusst vermieden, da eine frühere Einführung mehr Fragen aufwerfen als beantworten würde. Nämlich Pandas und Matplotlib war ein so gemeinsames und allgegenwärtiges Duo, dass Pandas damit begonnen hat, die Funktionalität von Matplotlib zu integrieren. Es schwer verlässt sich auf Matplotlib, um tatsächliche Plots durchzuführen, und Sie finden viele Matplotlib-Funktionen im Quellcode. Alternativ können Sie zum Plotten auch andere Backends nutzen, wie z.B Plot und Bokeh.

Pandas stellt uns jedoch auch einige Handlungsstränge vor sind nicht ein Teil der Standardplottypen von Matplotlib, wie z KDEs, Andrews-Kurven, Bootstrap-Plots und Streumatrizen.

Das plot() Funktion eines Pandas DataFrame verwendet das von angegebene Backend plotting.backendund je nach kind Argument – ​​generiert einen Plot unter Verwendung der angegebenen Bibliothek. Da sich viele davon überschneiden, macht es keinen Sinn, Handlungstypen wie z line, bar, hist und scatter. Sie werden mit demselben Code fast die gleichen Diagramme erstellen, die wir bisher mit Matplotlib gemacht haben.

Wir werfen nur einen kurzen Blick darauf plot() Funktion, da der zugrunde liegende Mechanismus bisher erforscht wurde. Konzentrieren wir uns stattdessen auf einige der Handlungsstränge, die wir haben kann nicht Mit Matplotlib geht das schon problemlos.

Dies wird ein sehr kurzes Kapitel sein, da die Plot- und Visualisierungsfähigkeiten von Pandas im Vergleich zu Matplotlib verblassen – es ist jedoch dennoch nützlich, einige davon zu kennen und sich der Fähigkeit zum Plotten bewusst zu sein DataFrames direkt.

Das DataFrame.plot() Funktion

Das plot() Funktion akzeptiert x und y Funktionen und a kind Streit. Alternativ, um das zu vermeiden kind Argument, Sie können auch anrufen DataFrame.plot.kind() stattdessen und übergeben Sie die x und y Funktionen.

Die akzeptierten Werte für die kind Argumente sind: line, bar, barh (horizontale Linie), hist, box, kde, density (Synonym für kde), area, pie, scatter und hexbin (ähnlich einer 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()

Anstatt die Series Instanzen wie wir es für Matplotlib tun – es reicht aus, das bereitzustellen Spaltennamen, und da du das anrufst plot() Funktion auf der DataFrame Sie visualisieren, ist es für Pandas einfach, diese Zeichenfolgenwerte den entsprechenden Spaltennamen zuzuordnen.

Jeder dieser Anrufe führt zu einem neuen Figure Instanz und zeichnet die entsprechenden Werte darauf auf:

Datenvisualisierung mit Pandas PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Um mehrere Achsen auf derselben zu zeichnen Figure, du kannst a . machen Figure und ein oder mehrere Axes plt.subplots() und weisen Sie das entsprechende zu Axes zu den ax Argument von jedem plot.plot_type() Anruf:

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

Einige der Standardargumente, wie z rotation Argument sind tatsächlich anders in der plot() Anrufe. Zum Beispiel, rotation wird gekürzt zu rot. Das macht es etwas schwierig einfach wechseln zwischen Matplotlib und Pandas, da Sie höchstwahrscheinlich auf den Dokumentationsseiten landen und nur prüfen müssen, welche Argumente angewendet werden können und welche nicht.

Jetzt, anstatt ein neues zu erstellen Figure or Axes Beispielsweise wird jedes dieser Grundstücke entsprechend stationiert Axes Beispiele, die wir ihnen zur Verfügung gestellt haben:

Datenvisualisierung mit Pandas PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Im Allgemeinen ist das Plotten mit Pandas bequem und schnell – aber dennoch werden Sie zum Plotten von Balkendiagrammen, Liniendiagrammen und Boxdiagrammen wahrscheinlich Matplotlib verwenden wollen. Es ist sowohl die zugrunde liegende Engine, die Pandas zwangsläufig verwendet, als auch verfügt es über mehr Anpassungsoptionen, und Sie müssen sich keine neuen Argumente merken, die Sie mit Pandas-Plots verwenden können.

Allerdings möchten Sie vielleicht einige Grundstücke bevorzugen Pandas, da sie manuell in Matplotlib erstellt werden müssten und einige von ihnen so mühsam zu erstellen sind, dass sich der Aufwand nicht lohnt, wie zum Beispiel KDE-Zeilen.

Pandas‘ plotten Modul

Was DataFrameWas die Visualisierung zu bieten hat, ist für uns nicht allzu neu. Das zugrunde liegende Modul, das sie nennen, ist jedoch pandas.plotting tut. Das plotting Das Modul verfügt über mehrere Funktionen, die wir verwenden können, z autocorrelation_plot(), bootstrap_plot() und scatter_matrix().

Jeder von ihnen akzeptiert entweder a Series oder eine DataFrame, abhängig von der Art der Visualisierung, die sie erstellen, sowie bestimmte Parameter für Plotspezifikationen und Stilzwecke.

Bootstrap-Plot

Bootstrapping ist der Prozess der zufälligen Stichprobe (mit Ersetzung) eines Datensatzes und der Berechnung von Genauigkeitsmaßen wie z vorspannen, Unterschied und Vertrauensintervalle für die Zufallsstichproben. „Mit Ersetzung“ bedeutet praktisch, dass jedes zufällig ausgewählte Element erneut ausgewählt werden kann. Ohne Ersatz bedeutet, dass jedes zufällig ausgewählte Element für die nächste Stichprobe aus dem Pool entfernt wird.

A Bootstrap-Plot, erstellt von Pandas, erstellt die Durchschnitts-, Median- und Mittelbereichsstatistiken eines Datensatzes basierend auf der Stichprobe size, danach wird der Plot anschließend über angezeigt plt.show(). Die Standardargumente für size und samples sind 50 und 500 beziehungsweise.

Das bedeutet, dass wir für ein Feature Stichproben durchführen 50 Werte. Anschließend wird eine Teilstichprobe mit 50 Elementen (synthetische Daten) für diese 50 Werte erstellt und eine zusammenfassende Statistik (Mittelwert/Median/Mittelwert) für sie berechnet. Dieser Vorgang wird wiederholt 500 Mal, also haben wir am Ende 500 zusammenfassende Statistiken:

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

Datenvisualisierung mit Pandas PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Autokorrelationsdiagramm

Autokorrelationsdiagramme werden zur Überprüfung der Datenzufälligkeit bei Zeitreihendaten verwendet. Mehrere Autokorrelationen werden für unterschiedliche Zeitstempel berechnet, und wenn die Daten wirklich zufällig sind, liegt die Korrelation nahe Null. Wenn nicht, ist die Korrelation größer als Null.

Lassen Sie uns zwei Autokorrelationsdiagramme zeichnen – eines mit unserem Wert Funktion und eines mit a Series gefüllt mit Zufallswerten:

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

Das Autokorrelationsdiagramm für die random_series sollte sich umdrehen 0, da es sich um Zufallsdaten handelt, während das Diagramm für die Value Funktion wird nicht:

Datenvisualisierung mit Pandas PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Es ist erwähnenswert, dass die Autokorrelation eins misst unten stehende Formular der Zufälligkeit, da unkorrelierte, aber nicht zufällige Daten existieren. Wenn es nicht zufällig ist, aber keine signifikanten Korrelationen aufweist, zeigt das Autokorrelationsdiagramm an, dass die Daten zufällig sind.

Streumatrizen

Streumatrizen Handlung a Gitter von Streudiagrammen für alle Features gegen alle Features. Da dabei zwangsläufig auch jedes Merkmal mit sich selbst verglichen wird – das Diagonale wo dies geschieht, wird normalerweise durch a ersetzt Histogramm dieser Funktion anstelle eines Streudiagramms. Streumatrizen sind auch bekannt als Paardiagramme, und Seaborn bietet a pairplot() Funktion nur dafür.

Das scatter_matrix() Funktion akzeptiert a DataFrame und erzeugt eine Streumatrix für alle ihre numerischen Merkmale und gibt ein 2D-Array von zurück Axes Instanzen, aus denen die Streumatrix besteht. Um etwas an ihnen zu optimieren, sollten Sie sie durchlaufen:

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

Dies führt zu einer ziemlich großen Streumatrix aller Features im Vergleich zu allen anderen Features:

Datenvisualisierung mit Pandas PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Sie können auch die übergeben diagonal Argument, das akzeptiert 'hist' or 'kde' um anzugeben, welche Art von Verteilungsdiagramm Sie auf der Diagonale darstellen möchten alpha, wodurch die Transluzenz der Markierungen in den Streudiagrammen angegeben wird.

Zeitstempel:

Mehr von Stapelmissbrauch