Сюжет с пандами и запонками

Pandas - очень популярная библиотека на Python для анализа данных. Он также имеет собственную поддержку функции построения графика. Однако графики Pandas не обеспечивают интерактивности при визуализации. К счастью, интерактивные и динамические сюжеты plotly можно построить с помощьюPandas dataframe объекты.

Начнем с создания Dataframe из простых объектов списка.

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)

Столбцы фрейма данных используются как значения данных для x и yсвойства трасс объекта графа. Здесь мы сгенерируем полосу, используяname и marks столбцы.

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

В блокноте Jupyter будет отображаться простой график столбцов, как показано ниже -

Сюжет построен на d3.js и, в частности, библиотека диаграмм, которую можно использовать напрямую с Pandas dataframes используя другую библиотеку с именем Cufflinks.

Если он еще не доступен, установите пакет запонок с помощью вашего любимого менеджера пакетов, например pip как указано ниже -

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

Сначала импортируйте запонки вместе с другими библиотеками, такими как Pandas и numpy который может настроить его для автономного использования.

import cufflinks as cf
cf.go_offline()

Теперь вы можете напрямую использовать Pandas dataframe для отображения различных типов графиков без использования объектов трассировки и рисунка из graph_objs module как мы делали раньше.

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

Гистограмма, очень похожая на предыдущую, будет отображаться, как показано ниже -

Фреймы данных Pandas из баз данных

Вместо использования списков Python для построения фрейма данных он может быть заполнен данными из разных типов баз данных. Например, данные из файла CSV, таблицы базы данных SQLite или таблицы базы данных mysql могут быть извлечены в фрейм данных Pandas, который в конечном итоге подвергается построению графиков с использованиемFigure object или же Cufflinks interface.

Чтобы получить данные из CSV file, мы можем использовать read_csv() функция из библиотеки Pandas.

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

Если данные доступны в SQLite database table, его можно получить с помощью SQLAlchemy library следующим образом -

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)

С другой стороны, данные из MySQL database извлекается в кадре данных Pandas следующим образом:

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)