Trama con pandas y gemelos

Pandas es una biblioteca muy popular en Python para el análisis de datos. También tiene su propia función de gráfico. Sin embargo, los gráficos de Pandas no proporcionan interactividad en la visualización. Afortunadamente, las parcelas dinámicas e interactivas de plotly se pueden construir usandoPandas dataframe objetos.

Comenzamos construyendo un marco de datos a partir de objetos de lista simples.

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)

Las columnas del marco de datos se utilizan como valores de datos para x y ypropiedades de las trazas de objetos gráficos. Aquí, generaremos un trazo de barra usandoname y marks columnas.

trace = go.Bar(x = df.name, y = df.marks)
fig = go.Figure(data = [trace])
iplot(fig)

Se mostrará un diagrama de barras simple en el cuaderno de Jupyter como se muestra a continuación:

Plotly está construido sobre d3.js y es específicamente una biblioteca de gráficos que se puede utilizar directamente con Pandas dataframes usando otra biblioteca llamada Cufflinks.

Si aún no está disponible, instale el paquete de gemelos usando su administrador de paquetes favorito como pip como se indica a continuación -

pip install cufflinks
or
conda install -c conda-forge cufflinks-py

Primero, importe gemelos junto con otras bibliotecas como Pandas y numpy que puede configurarlo para su uso sin conexión.

import cufflinks as cf
cf.go_offline()

Ahora puedes usar directamente Pandas dataframe para mostrar varios tipos de gráficos sin tener que utilizar trazas y objetos de figura de graph_objs module como lo hemos estado haciendo anteriormente.

df.iplot(kind = 'bar', x = 'name', y = 'marks')

El diagrama de barras, muy similar al anterior, se mostrará como se muestra a continuación:

Pandas dataframes de bases de datos

En lugar de usar listas de Python para construir marcos de datos, se pueden completar con datos en diferentes tipos de bases de datos. Por ejemplo, los datos de un archivo CSV, una tabla de base de datos SQLite o una tabla de base de datos mysql se pueden recuperar en un marco de datos de Pandas, que finalmente se somete a gráficos de trazado utilizandoFigure object o Cufflinks interface.

Para recuperar datos de CSV file, nosotros podemos usar read_csv() función de la biblioteca de Pandas.

import pandas as pd
df = pd.read_csv('sample-data.csv')

Si hay datos disponibles en SQLite database table, se puede recuperar usando SQLAlchemy library como sigue -

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)

Por otro lado, los datos de MySQL database se recupera en un marco de datos de Pandas de la siguiente manera:

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)