Οπτικοποίηση δεδομένων με το Pandas PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Οπτικοποίηση δεδομένων με Panda

Η Pandas μας έχει βοηθήσει μέχρι στιγμής στη φάση της Προεπεξεργασίας Δεδομένων. Αν και, σε μια περίπτωση, κατά τη δημιουργία ιστογραμμάτων, χρησιμοποιήσαμε επίσης μια άλλη ενότητα από το Pandas – plotting.

Έχουμε αποφύγει σκόπιμα μέχρι τώρα, γιατί η εισαγωγή του νωρίτερα θα εγείρει περισσότερα ερωτήματα από όσα απαντούσε. Δηλαδή τα Πάντα και Το Matplotlib ήταν ένα τόσο συνηθισμένο δίδυμο, που το Pandas άρχισε να ενσωματώνει τη λειτουργικότητα του Matplotlib. Το βαριά βασίζεται στο Matplotlib για να κάνει οποιαδήποτε πραγματική γραφική παράσταση, και θα βρείτε πολλές συναρτήσεις Matplotlib τυλιγμένες στον πηγαίο κώδικα. Εναλλακτικά, μπορείτε να χρησιμοποιήσετε άλλα backend για σχεδίαση, όπως π.χ Οπωσδήποτε και Bokeh.

Ωστόσο, ο Pandas μας παρουσιάζει και μια-δυο πλοκές που δεν είναι ένα μέρος των τυπικών τύπων οικοπέδων της Matplotlib, όπως π.χ KDE, Andrews Curves, Οικόπεδα Bootstrap και Πίνακες διασποράς.

Η plot() λειτουργία ενός Panda DataFrame χρησιμοποιεί το backend που καθορίζεται από plotting.backend, και ανάλογα με το kind όρισμα – δημιουργεί μια γραφική παράσταση χρησιμοποιώντας τη δεδομένη βιβλιοθήκη. Δεδομένου ότι πολλά από αυτά αλληλεπικαλύπτονται – δεν έχει νόημα να καλύψουμε τύπους οικοπέδων όπως π.χ line, bar, hist και scatter. Θα παράγουν σχεδόν τα ίδια οικόπεδα με τον ίδιο κώδικα που κάναμε μέχρι τώρα με το Matplotlib.

Θα ρίξουμε μόνο εν συντομία μια ματιά στο plot() λειτουργούν δεδομένου ότι ο υποκείμενος μηχανισμός έχει διερευνηθεί μέχρι στιγμής. Αντίθετα, ας εστιάσουμε σε μερικές από τις πλοκές που έχουμε δεν μπορεί να ήδη κάνει εύκολα με το Matplotlib.

Αυτό θα είναι ένα πολύ σύντομο κεφάλαιο, καθώς οι δυνατότητες σχεδίασης και οπτικοποίησης των Panda είναι ωχρές σε σύγκριση με το Matplotlib – αλλά είναι ακόμα χρήσιμο να γνωρίζετε μερικά από αυτά, καθώς και να γνωρίζετε την ικανότητα σχεδίασης από DataFrames άμεσα.

Η DataFrame.plot() Λειτουργία

Η plot() η λειτουργία δέχεται x και y χαρακτηριστικά και α kind διαφωνία. Εναλλακτικά, για να αποφευχθεί η kind επιχείρημα, μπορείτε επίσης να καλέσετε DataFrame.plot.kind() αντί, και περάστε στο x και y χαρακτηριστικά.

Οι αποδεκτές τιμές για το kind επιχείρημα είναι: line, bar, barh (οριζόντια μπάρα), hist, box, kde, density (συνώνυμο του kde), area, pie, scatter και hexbin (παρόμοιο με ένα 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()

Αντί να παρέχει το Series περιπτώσεις όπως κάνουμε για το Matplotlib – αρκεί να παρέχουμε το ονόματα στηλών, και αφού καλείτε το plot() λειτουργία στο DataFrame οπτικοποιείτε, είναι εύκολο για τα Panda να αντιστοιχίσουν αυτές τις τιμές συμβολοσειράς στα κατάλληλα ονόματα στηλών.

Κάθε μία από αυτές τις κλήσεις κάνει μια νέα Figure παράδειγμα και σχεδιάζει τις κατάλληλες τιμές σε αυτό:

Οπτικοποίηση δεδομένων με το Pandas PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Να σχεδιάσετε πολλούς άξονες στον ίδιο Figure, μπορείτε να κάνετε ένα Figure και ένα ή περισσότερα Axes μέσω plt.subplots() και αναθέστε το κατάλληλο Axes στο ax επιχείρημα του καθενός plot.plot_type() κλήση:

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

Μερικά από τα τυπικά επιχειρήματα, όπως το rotation το επιχείρημα είναι πραγματικά διαφορετικό στο plot() κλήσεις. Για παράδειγμα, rotation συντομεύεται σε rot. Αυτό το κάνει λίγο δύσκολο απλά αλλάξτε μεταξύ Matplotlib και Pandas, καθώς πιθανότατα θα καταλήξετε στις σελίδες τεκμηρίωσης, απλώς ελέγχοντας ποια ορίσματα μπορούν να εφαρμοστούν και ποια όχι.

Τώρα, αντί να δημιουργήσετε ένα νέο Figure or Axes Για παράδειγμα, καθένα από αυτά τα οικόπεδα θα τοποθετηθεί στον κατάλληλο χώρο Axes περιπτώσεις που τους έχουμε παράσχει:

Οπτικοποίηση δεδομένων με το Pandas PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Σε γενικές γραμμές, η γραφική παράσταση με Pandas είναι βολική και γρήγορη – αλλά ακόμα κι έτσι, για τη σχεδίαση γραμμών, γραμμών και τεμαχίων κουτιών, πιθανότατα θα θέλετε να πάτε με το Matplotlib. Είναι και ο υποκείμενος κινητήρας που χρησιμοποιεί αναπόφευκτα τα Panda, και έχει επίσης περισσότερες επιλογές προσαρμογής και δεν θα χρειαστεί να θυμάστε ένα νέο σύνολο επιχειρημάτων που μπορείτε να χρησιμοποιήσετε με τις γραφές Pandas.

Τούτου λεχθέντος, για ορισμένες πλοκές, ίσως να θέλετε να προτιμήσετε Πάντα, αφού θα έπρεπε να γίνουν χειροκίνητα στο Matplotlib, και μερικά από αυτά είναι τόσο ταλαιπωρημένα ώστε να μην αξίζει τον κόπο, όπως οι γραμμές KDE.

τα πάντα κατασκευή διαγράμματος Μονάδα μέτρησης

Τι DataFrameΤο να προσφέρεις όσον αφορά την οπτικοποίηση δεν είναι πολύ νέο για εμάς. Ωστόσο, η υποκείμενη ενότητα που ονομάζουν, pandas.plotting κάνει. ο plotting Η ενότητα έχει πολλές λειτουργίες που μπορούμε να χρησιμοποιήσουμε, όπως π.χ autocorrelation_plot(), bootstrap_plot(), να scatter_matrix().

Καθένα από αυτά δέχεται είτε α Series ή ένα DataFrame, ανάλογα με τον τύπο της απεικόνισης που παράγουν, καθώς και με ορισμένες παραμέτρους για τις προδιαγραφές σχεδίασης και τους σκοπούς του στυλ.

Οικόπεδο Bootstrap

Εκκίνηση είναι η διαδικασία τυχαίας δειγματοληψίας (με αντικατάσταση) ενός συνόλου δεδομένων και υπολογισμού μέτρων ακρίβειας όπως π.χ. προκατάληψη, διακύμανση και διαστήματα εμπιστοσύνης για τα τυχαία δείγματα. «Με αντικατάσταση», πρακτικά σημαίνει ότι κάθε τυχαία επιλεγμένο στοιχείο μπορεί να επιλεγεί ξανά. Χωρίς αντικατάσταση σημαίνει ότι μετά από κάθε τυχαία επιλεγμένο στοιχείο, αφαιρείται από τη δεξαμενή για το επόμενο δείγμα.

A Οικόπεδο Bootstrap, που δημιούργησε η Pandas bootstraps τα στατιστικά στοιχεία μέσης, μέσης και μεσαίου εύρους ενός συνόλου δεδομένων, με βάση το δείγμα size, μετά την οποία η πλοκή εμφανίζεται στη συνέχεια μέσω plt.show(). Τα προεπιλεγμένα ορίσματα για size και samples are 50 και 500 αντίστοιχα.

Αυτό σημαίνει ότι για ένα χαρακτηριστικό, κάνουμε δειγματοληψία 50 αξίες. Στη συνέχεια, δημιουργείται ένα υποδείγμα 50 στοιχείων (συνθετικά δεδομένα) για αυτές τις 50 τιμές και υπολογίζεται μια συνοπτική στατιστική (μέσος/διάμεσος/μεσαίος εύρος) για αυτές. Αυτή η διαδικασία επαναλαμβάνεται 500 φορές, οπότε στο τέλος, έχουμε 500 συνοπτικά στατιστικά:

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

Οπτικοποίηση δεδομένων με το Pandas PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Οικόπεδο αυτοσυσχέτισης

Οικόπεδα αυτοσυσχέτισης χρησιμοποιούνται για τον έλεγχο της τυχαιότητας δεδομένων, για δεδομένα χρονοσειρών. Πολλαπλούς αυτοσυσχετίσεις υπολογίζονται για διαφορετικές χρονικές σημάνσεις και εάν τα δεδομένα είναι πραγματικά τυχαία - η συσχέτιση θα είναι σχεδόν μηδενική. Εάν όχι - η συσχέτιση θα είναι μεγαλύτερη από το μηδέν.

Ας σχεδιάσουμε δύο Οικόπεδα Αυτοσυσχέτισης – ένα με το δικό μας αξία χαρακτηριστικό και ένα με α Series γεμάτη με τυχαίες τιμές:

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

Η γραφική παράσταση αυτοσυσχέτισης για το random_series πρέπει να περιστρέφεται γύρω από 0, αφού είναι τυχαία δεδομένα, ενώ η γραφική παράσταση για το Value χαρακτηριστικό δεν θα:

Οπτικοποίηση δεδομένων με το Pandas PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Αξίζει να σημειωθεί ότι η Αυτοσυσχέτιση μετρά ένα μορφή τυχαίας, ως μη συσχετισμένα, αλλά μη τυχαία δεδομένα υπάρχουν. Εάν δεν είναι τυχαίο, αλλά δεν έχει σημαντικές συσχετίσεις - η γραφική παράσταση αυτόματης συσχέτισης θα υποδείξει ότι τα δεδομένα είναι τυχαία.

Πίνακες διασποράς

Πίνακες διασποράς οικόπεδο α πλέγμα του Scatter Plots για όλα τα χαρακτηριστικά έναντι όλων των χαρακτηριστικών. Δεδομένου ότι αυτό αναπόφευκτα συγκρίνει κάθε χαρακτηριστικό με τον εαυτό του, επίσης – το διαγώνιος όπου συμβαίνει αυτό αντικαθίσταται συνήθως με α Ιστόγραμμα αυτού του χαρακτηριστικού, αντί ενός Scatter Plot. Πίνακες διασποράς είναι επίσης γνωστά ως Ζευγάρι Οικόπεδα, και η Seaborn προσφέρει α pairplot() λειτουργούν μόνο για αυτό.

Η scatter_matrix() η συνάρτηση δέχεται α DataFrame και παράγει ένα Scatter Matrix για όλα τα αριθμητικά χαρακτηριστικά του και επιστρέφει έναν πίνακα 2D Axes περιπτώσεις που περιλαμβάνουν το Scatter Matrix. Για να τροποποιήσετε οτιδήποτε σχετικά με αυτά, θα θέλετε να τα επαναλάβετε:

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

Αυτό έχει ως αποτέλεσμα ένα αρκετά μεγάλο Scatter Matrix όλων των χαρακτηριστικών έναντι όλων των άλλων χαρακτηριστικών:

Οπτικοποίηση δεδομένων με το Pandas PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Μπορείτε επίσης να περάσετε στο diagonal επιχείρημα, το οποίο δέχεται 'hist' or 'kde' για να καθορίσετε τον τύπο γραφήματος διανομής που θέλετε να σχεδιάσετε στη διαγώνιο, καθώς και alpha, προσδιορίζοντας την ημιδιαφάνεια των δεικτών στα Σχήματα Scatter.

Σφραγίδα ώρας:

Περισσότερα από Stackabuse