Trama con panda e gemelli
Pandas è una libreria molto popolare in Python per l'analisi dei dati. Ha anche il proprio supporto per la funzione di trama. Tuttavia, le trame di Panda non forniscono l'interattività nella visualizzazione. Per fortuna, le trame interattive e dinamiche di plotly possono essere costruite utilizzandoPandas dataframe oggetti.
Iniziamo costruendo un Dataframe da semplici oggetti elenco.
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)
Le colonne del dataframe vengono utilizzate come valori di dati per x e yproprietà delle tracce di oggetti grafici. Qui, genereremo una traccia della barra usandoname e marks colonne.
trace = go.Bar(x = df.name, y = df.marks)
fig = go.Figure(data = [trace])
iplot(fig)
Un semplice grafico a barre verrà visualizzato nel notebook Jupyter come di seguito:
Plotly è costruito sopra d3.js ed è specificamente una libreria di grafici che può essere utilizzata direttamente con Pandas dataframes utilizzando un'altra libreria denominata Cufflinks.
Se non è già disponibile, installa il pacchetto gemelli utilizzando il tuo gestore di pacchetti preferito come pip come indicato di seguito -
pip install cufflinks
or
conda install -c conda-forge cufflinks-py
Innanzitutto, importa i gemelli insieme ad altre librerie come Pandas e numpy che può configurarlo per l'utilizzo offline.
import cufflinks as cf
cf.go_offline()
Ora puoi usare direttamente Pandas dataframe per visualizzare vari tipi di grafici senza dover utilizzare oggetti di traccia e figura da graph_objs module come abbiamo fatto in precedenza.
df.iplot(kind = 'bar', x = 'name', y = 'marks')
Il grafico a barre, molto simile a quello precedente verrà visualizzato come indicato di seguito:
Dataframe di Pandas da database
Invece di usare elenchi Python per costruire dataframe, può essere popolato da dati in diversi tipi di database. Ad esempio, i dati da un file CSV, una tabella di database SQLite o una tabella di database mysql possono essere recuperati in un dataframe Pandas, che alla fine viene sottoposto a grafici grafici utilizzandoFigure object o Cufflinks interface.
Per recuperare i dati da CSV file, possiamo usare read_csv() funzione dalla libreria Pandas.
import pandas as pd
df = pd.read_csv('sample-data.csv')
Se i dati sono disponibili in SQLite database table, può essere recuperato utilizzando SQLAlchemy library come segue -
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)
D'altra parte, i dati da MySQL database viene recuperato in un dataframe Pandas come segue:
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)