Bei der Überprüfung des Inhalts der Daten Es kann vorkommen, dass Sie darstellen möchten, wie viele Binärdaten in einem einzelnen Balkendiagramm enthalten sind.
War es ein schlechter Weg, es zu finden? Ich habe keine präzise Möglichkeit gefunden, es mit einem einzelnen Balkendiagramm darzustellen, daher werde ich auch die Ausgabe einbeziehen.
Dieses Mal erstelle ich ein Balkendiagramm, das nicht nur Binärdaten, sondern auch 6-Wert-Daten enthält.
Ich habe Google Colab verwendet. Die Version der verwendeten Bibliothek lautet wie folgt.
Bibliothek | Ausführung |
---|---|
python | 3.6.9 |
pandas | 1.1.4 |
seaborn | 0.11.0 |
matplotlib | 3.2.2 |
Importieren Sie das obige Modul, bevor Sie es verwenden.
%matplotlib inline
import pandas as pd
import seaborn as sns
from matplotlib import pyplot as plt
Dieses Mal verwenden wir die Tipps des Trainingsdatensatzes, der in seaborn enthalten ist. Dieser Datensatz hat Es enthält den Gesamtbetrag für Abendessen und Mittagessen, die Anzahl der enthaltenen Chips und das Geschlecht der Person, die bezahlt hat.
#Datenrahmen importieren
tips = sns.load_dataset('tips')
#Überprüfen Sie die ersten 5 Zeilen
display(tips.head())
total_bill | tip | sex | smoker | day | time | size | |
---|---|---|---|---|---|---|---|
0 | 16.99 | 1.01 | Female | No | Sun | Dinner | 2 |
1 | 10.34 | 1.66 | Male | No | Sun | Dinner | 3 |
2 | 21.01 | 3.50 | Male | No | Sun | Dinner | 3 |
3 | 23.68 | 3.31 | Male | No | Sun | Dinner | 2 |
4 | 24.59 | 3.61 | Female | No | Sun | Dinner | 4 |
Wenn Sie die obige Ausgabe sehen, ist der Import erfolgreich.
Erstellen Sie ein Balkendiagramm mit den folgenden vier Spalten. Um ein Diagramm zu erstellen, müssen Sie qualitative Werte in quantitative Werte konvertieren.
Spaltenname | Überblick | Politik |
---|---|---|
sex | Sex(Male/Female) | Male -> 0, Female -> 1 |
smoker | Rauchen(No/Yes) | No -> 0, Yes -> 1 |
time | Essenszeit(Lunch/Dinner) | Lunch -> 0, Dinner -> 1 |
size | Anzahl der Personen(1 ~ 6) | Verwenden Sie es wie es ist |
Ich denke, es gibt viele Möglichkeiten, dies zu tun. Es wurde wie folgt durchgeführt.
#Sex quantifizieren(Male1 -> 0, Female -> 1)
tips.sex = tips.sex.replace("Male", 0).replace("Female", 1)
#Raucher quantifizieren(No -> 0, Yes -> 1)
tips.smoker = tips.smoker.replace("No", 0).replace("Yes", 1)
#Zeit quantifizieren(Lunch -> 0, Dinner -> 1)
tips.time = tips.time.replace("Lunch", 0).replace("Dinner", 1)
#Überprüfen Sie die ersten 5 Zeilen
display(tips.head())
total_bill | tip | sex | smoker | day | time | size | |
---|---|---|---|---|---|---|---|
0 | 16.99 | 1.01 | 1 | 0 | Sun | 1 | 2 |
1 | 10.34 | 1.66 | 0 | 0 | Sun | 1 | 3 |
2 | 21.01 | 3.50 | 0 | 0 | Sun | 1 | 3 |
3 | 23.68 | 3.31 | 0 | 0 | Sun | 1 | 2 |
4 | 24.59 | 3.61 | 1 | 0 | Sun | 1 | 4 |
Auf diese Weise können Sie sehen, dass es durch 0 und 1 ersetzt wurde.
Nun zum Hauptthema. Definieren Sie die Spaltennamen, die in das Balkendiagramm aufgenommen werden sollen, in Beschriftung im Listenformat. Erhalten Sie dann den eindeutigen Wert für jede Spalte und ihre Nummer. In diesem Zustand ist Index der Spaltenname und Spaltenname der Wert, sodass die Ersetzung ausgeführt wird.
#Definition der Beschriftungsliste, die im Balkendiagramm gespeichert werden soll
label = ["sex", "smoker", "time", "size"]
#Holen Sie sich einen eindeutigen Wert für jedes Etikett
tips_ = [tips[l].value_counts() for l in label]
#In Datenrahmen konvertieren und Index und Spalte austauschen
tips_ = pd.DataFrame(tips_).transpose()
#Grafik anzeigen
tips_.plot.bar()
plt.grid()
plt.title("Frequency of values in each label")
plt.ylabel("counts")
plt.xlabel("value")
plt.show()
Auf diese Weise konnte ich das Diagramm erstellen, das ich finden wollte.
Ich habe mit value_counts einen neuen Datenrahmen erstellt und ein Balkendiagramm der Häufigkeit ausgegeben.