Plotly mit Pandas und Manschettenknöpfen
Pandas ist eine sehr beliebte Bibliothek in Python für die Datenanalyse. Es hat auch eine eigene Unterstützung für Plotfunktionen. Pandas-Diagramme bieten jedoch keine Interaktivität bei der Visualisierung. Glücklicherweise können die interaktiven und dynamischen Diagramme von plotly mithilfe von erstellt werdenPandas dataframe Objekte.
Wir beginnen mit dem Erstellen eines Datenrahmens aus einfachen Listenobjekten.
data = [['Ravi',21,67],['Kiran',24,61],['Anita',18,46],['Smita',20,78],['Sunil',17,90]]
df = pd.DataFrame(data,columns = ['name','age','marks'],dtype = float)
Die Datenrahmenspalten werden als Datenwerte für verwendet x und yEigenschaften von Diagrammobjektspuren. Hier generieren wir eine Balkenspur mitname und marks Säulen.
trace = go.Bar(x = df.name, y = df.marks)
fig = go.Figure(data = [trace])
iplot(fig)
Ein einfaches Balkendiagramm wird im Jupyter-Notizbuch wie folgt angezeigt:
Plotly ist darauf gebaut d3.js und ist speziell eine Diagrammbibliothek, die direkt mit verwendet werden kann Pandas dataframes mit einer anderen Bibliothek namens Cufflinks.
Falls noch nicht verfügbar, installieren Sie das Manschettenknopfpaket mit Ihrem bevorzugten Paketmanager wie pip wie unten angegeben -
pip install cufflinks
or
conda install -c conda-forge cufflinks-py
Importieren Sie zunächst Manschettenknöpfe zusammen mit anderen Bibliotheken wie z Pandas und numpy welches es für die Offline-Verwendung konfigurieren kann.
import cufflinks as cf
cf.go_offline()
Jetzt können Sie direkt verwenden Pandas dataframe um verschiedene Arten von Plots anzuzeigen, ohne Trace- und Figurenobjekte von verwenden zu müssen graph_objs module wie wir es vorher getan haben.
df.iplot(kind = 'bar', x = 'name', y = 'marks')
Balkendiagramm, das dem vorherigen sehr ähnlich ist, wird wie folgt angezeigt:
Pandas-Datenrahmen aus Datenbanken
Anstatt Python-Listen zum Erstellen von Datenrahmen zu verwenden, können Daten in verschiedenen Datenbanktypen verwendet werden. Beispielsweise können Daten aus einer CSV-Datei, einer SQLite-Datenbanktabelle oder einer MySQL-Datenbanktabelle in einen Pandas-Datenrahmen abgerufen werden, der schließlich mithilfe von Plotgraphen verwendet wirdFigure object oder Cufflinks interface.
Daten abrufen von CSV file, wir können benutzen read_csv() Funktion aus der Pandas-Bibliothek.
import pandas as pd
df = pd.read_csv('sample-data.csv')
Wenn Daten in verfügbar sind SQLite database tablekann es mit abgerufen werden SQLAlchemy library wie folgt -
import pandas as pd
from sqlalchemy import create_engine
disk_engine = create_engine('sqlite:///mydb.db')
df = pd.read_sql_query('SELECT name,age,marks', disk_engine)
Auf der anderen Seite Daten von MySQL database wird in einem Pandas-Datenrahmen wie folgt abgerufen:
import pymysql
import pandas as pd
conn = pymysql.connect(host = "localhost", user = "root", passwd = "xxxx", db = "mydb")
cursor = conn.cursor()
cursor.execute('select name,age,marks')
rows = cursor.fetchall()
df = pd.DataFrame( [[ij for ij in i] for i in rows] )
df.rename(columns = {0: 'Name', 1: 'age', 2: 'marks'}, inplace = True)