📜  与熊猫和袖扣密谋

📅  最后修改于: 2020-11-29 07:10:52             🧑  作者: Mango


Pandas是Python非常流行的用于数据分析的库。它还具有自己的绘图函数支持。但是,熊猫图无法在可视化中提供交互性。幸运的是,可以使用Pandas数据框对象构建plotly的交互式和动态图。

我们首先从简单的列表对象构建一个数据框。

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)

数据框列用作图形对象迹线的xy属性的数据值。在这里,我们将使用名称标记列生成条形图。

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

一个简单的条形图将在Jupyter笔记本中显示,如下所示-

熊猫数据框

Plotly建立在d3.js之上,并且是一个专门的图表库,可以使用另一个名为Cufflinks的库直接与Pandas数据一起使用。

如果尚不可用,请使用您喜欢的软件包管理器(如pip)安装袖扣软件包,如下所示:

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

首先,导入袖扣以及其他可以配置为脱机使用的库,例如Pandasnumpy

import cufflinks as cf
cf.go_offline()

现在,您可以直接使用Pandas数据框显示各种绘图,而不必像以前一样使用graph_objs模块中的trace和图形对象。

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

条形图,与早期的条形图非常相似,如下所示:

熊猫数据框袖扣

数据库中的熊猫数据框

除了使用Python列表构造数据框外,还可以使用不同类型数据库中的数据填充它。例如,可以将CSV文件,SQLite数据库表或mysql数据库表中的数据提取到Pandas数据框中,并最终使用Figure对象Cufflinks接口对它们进行绘图。

要从CSV文件中获取数据,我们可以使用Pandas库中的read_csv()函数。

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

如果数据在SQLite数据库表中可用,则可以使用SQLAlchemy库按以下方式对其进行检索-

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)

另一方面,在Pandas数据框中检索来自MySQL数据库的数据,如下所示-

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)