[PYTHON] EXCEL-Datenleiste und Farbskala können auch mit Pandas erstellt werden

Der Tisch der Pandas ist etwas schwer zu sehen ... Ich möchte eine Farbe ...

Ich dachte an einem Punkt. Es ist auch mühsam, es nach EXCEL zu verschieben und eine Datenleiste anzuhängen. Können wir es also nicht auf Jupyter verwalten? Ich dachte, dass Pandas normalerweise eine solche Funktion haben lol Ich wusste nicht lol Ich habe es auf der folgenden Seite gefunden. https://pbpython.com/styling-pandas.html

DataFrame.style Sie können die detaillierte Funktion von DataFrame.style auf der folgenden Seite sehen. https://pandas.pydata.org/pandas-docs/version/0.18/style.html

Üben Sie mit dem in bklearn enthaltenen Datensatz Boston

#Paketimport
import pandas as pd
from sklearn import datasets
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns

#Daten gelesen
boston = datasets.load_boston()
boston_df=pd.DataFrame(boston.data)
boston_df.columns = boston.feature_names #Spaltennamen einfügen
boston_df['PRICE'] = pd.DataFrame(boston.target)
display(boston_df)

image.png

Fügen Sie dazu eine Datenleiste wie EXCEL hinzu

display(boston_df.style.bar())

image.png Oh, es ist geschafft. Aber es ist irgendwie blutig ...

Ich mag kein blutiges Blut, also kann ich eine Spalte auswählen und die Farbe ändern. Sie kann angepasst werden, indem Sie den Spaltennamen in der Teilmenge angeben oder ihn so beschreiben, dass die Leiste verbunden ist.

#Spaltenspezifikation
display(boston_df.style.bar(subset=['RM','AGE']))
#Spaltenbezeichnung und Farbcodierung für jede
display(boston_df.style\
        .bar(subset=['RM'],color=['lightcoral'])\
        .bar(subset=['AGE'],color=['lightgreen'])\
        .bar(subset=['TAX'],color=['lightblue']))

image.png image.png Ich kann gehen!

Probieren wir auch die Farbskala aus.

#Erstellen einer Korrelationsmatrix
boston_corr=boston_df.corr()
display(boston_corr)
#Farbe hinzufügen
display(boston_corr.style.background_gradient(cmap='coolwarm'))

image.png image.png Ich kann gehen! (Zweites Mal) Ich wusste, dass Pandas mit EXCEL auch solche Tabellen verarbeiten können.

Übrigens ist es möglich, so wie es ist als EXCEL-Datei auszugeben.

#Das openpyxl-Paket ist bereits installiert
n_df=boston_corr.style.background_gradient(cmap='coolwarm')
n_df.to_excel('test.xlsx')

Inhalt von'test.xlsx '↓ image.png

Es kann auf verschiedene Arten verwendet werden, um ein einfach zu lesendes Notizbuch zu erstellen!

Bonus (Sparklines)

Sie können ein Histogramm in eine Pandas-Tabelle mit einem Paket namens Sparklines schreiben Berechnen Sie beispielsweise für jeden CHAS: Charles River (1: um den Fluss herum, 0: ansonsten) den folgenden Durchschnitt. ・ DIS: Gewichtete Entfernung von 5 Beschäftigungseinrichtungen in Boston ・ PREIS: Hauspreis

display(boston_df.groupby('CHAS')[['DIS','PRICE']].mean())

image.png Hmmm, ich verstehe, dass die Gegend um den Charles River näher an den Arbeitsplätzen in Boston liegt und die Miete höher ist. Es gibt jedoch Ausreißer und die Tendenz ist fast gleich, aber der Durchschnitt kann höher sein. Definieren Sie also eine Funktion

from sparklines import sparklines
#Funktion definieren
def sparkline_hist(x, bin_num=10):
    bins=np.histogram(x, bins=bin_num)[0]
    sl = sparklines(bins)[0]
    return sl

Wenn Sie die Funktion auf groupby anwenden,

display(boston_df.groupby('CHAS')[['DIS','PRICE']].agg(['mean', sparkline_hist]))

image.png In der Tabelle erscheint ein Histogramm! Anscheinend gibt es viele Orte in der Nähe der Beschäftigungsmöglichkeiten in Boston, auch wenn es nicht um den Charles River herum liegt, und das Gebiet um den Charles River scheint eine Polarisierung von Häusern mit relativ hohen Mieten zu sein, und solchen, die es nicht sind. Sie können Dinge auf Pandas sehen.

Aus irgendeinem Grund gibt es bei meinem Jupyter jedoch einen Teil, in dem so etwas wie ein Histogramm nach unten konvex ist, und das bleibt ein Rätsel. Wenn ich den Inhalt der Funktion sparkline_hist untersuche, wird sie nicht besonders konvex. Warum?

# sparkline_Überprüfung des Inhalts der Hist-Funktion
bins=np.histogram(boston_df[boston_df['CHAS']==0]['DIS'], bins=10)[0]
sl = sparklines(bins)[0]
print(sl)
bins=np.histogram(boston_df[boston_df['CHAS']==1]['DIS'], bins=10)[0]
sl = sparklines(bins)[0]
print(sl)

image.png

Übrigens, als ich das Histogramm tatsächlich schrieb, sah es wie folgt aus.

fig=plt.figure(figsize=(10,5))
ax=plt.subplot(1,2,1)
ax.hist(boston_df[boston_df['CHAS']==0]['DIS'],bins=10, color='red', label='CHAS=0',alpha=0.5, density=True)
ax.hist(boston_df[boston_df['CHAS']==1]['DIS'],bins=10, color='blue', label='CHAS=1',alpha=0.5, density=True)
ax.legend(loc='upper right')
ax.set_ylabel('density')
ax.set_xlabel('DIS')
ax.set_title('DIS Hist')

ax2=plt.subplot(1,2,2)
ax2.hist(boston_df[boston_df['CHAS']==0]['PRICE'],bins=10, color='red', label='CHAS=0',alpha=0.5, density=True)
ax2.hist(boston_df[boston_df['CHAS']==1]['PRICE'],bins=10, color='blue', label='CHAS=1',alpha=0.5, density=True)
ax2.legend(loc='upper right')
ax2.set_ylabel('density')
ax2.set_xlabel('PRICE')
ax2.set_title('PRICE Hist')
plt.tight_layout()
plt.show()

image.png

Sparklines haben Spaß gemacht, aber ich kann mir keine besonders nützlichen Anwendungen vorstellen ... lol Ich zeichne normalerweise ein Histogramm. Lol

das ist alles!

Recommended Posts

EXCEL-Datenleiste und Farbskala können auch mit Pandas erstellt werden
Implementieren Sie "Data Visualization Design # 3" mit Pandas und Matplotlib
Visualisieren Sie Daten interaktiv mit TreasureData, Pandas und Jupyter.
Morphologische Analyse und tfidf (mit Testcode), die in ca. 1 Minute durchgeführt werden können
Seien Sie vorsichtig beim Lesen von Daten mit Pandas (geben Sie dtype an)
Liste der Farben, die mit tkinter (Denkmal) eingestellt werden können
Datenvisualisierung mit Pandas
Datenmanipulation mit Pandas!
Daten mit Pandas mischen
Es scheint, dass Skeleton Tracking mit RealSense durchgeführt werden kann
Ich habe die Vorbehandlung untersucht, die mit PyCaret durchgeführt werden kann
[Python] Zeichnen Sie mit Plotly Höhendaten auf eine sphärische Oberfläche und zeichnen Sie einen Globus, der rund und rund gedreht werden kann
Zeichnen Sie Excel-Daten mit matplotlib (1)
Zeichnen Sie Excel-Daten mit matplotlib (2)
Datenverarbeitungstipps mit Pandas