用Python处理Excel的数据,并将之可视化

房东的猫 提交于 2020-11-24 18:50:24

        用Python代码作可视化,如果每次都在代码中以列表的形式来一个一个字符地敲,无异乎浪费时间。我们都知道,在Excel中,数据是以DataFrame(一维的Series是特殊的DataFrame)形式作存储的,而我们在代码中输入的形式一般都是手工地以list的形式来输入。有没有什么快捷的方式呢?

        今天下午随意上网搜索了一下“Python 柱形图”,就发现了这篇文章(https://www.cnblogs.com/hhh188764/p/13213299.html)。经过参考,自己略作修改,于是有了这篇文章。

        具体如下:

1. 先从Excel中加载数据:

# 加载数据
import pandas as pd
df = pd.read_excel(r"D:\我的文档\MySQL.xlsx", sheet_name = 1)
df

2. 简单地做一下数据清洗:

# 按 num 字段排降序
df.sort_values(by = "num",ascending = False)

3. 做可视化输出

3.1 绘制一个单系列的柱形图,简单对比一下各种水果单品的销售(数量)状况

from pyecharts.charts import Bar
from pyecharts import options as opts

c = (
    #创建柱图对象,并设置大小,也可以不设置,直接使用默认大小即可
    Bar(init_opts=opts.InitOpts(width="700px", height="500px"))
    #设置X轴数据系列,只取前10个数据,并转为列表格式
    .add_xaxis(df.goods[:10].tolist())
    #设置Y轴数据系列及显示颜色,只取前10个数据,并转为列表格式
    .add_yaxis("销售数量", df.num[:10].tolist())
    # 设置图表标题及位置
    .set_global_opts(title_opts=opts.TitleOpts(title="TOP10水果大单品的销售数量",pos_left="left"))
    #通过render()方法将柱图在Web中渲染为html
#     .render("柱形图.html")
)

# 直接在notebook中作渲染
c.render_notebook()

渲染效果:

3.2 绘制一个多数据系列的柱形图,以便对比观察分析各种水果的销售金额&销售数量

# 绘制的多数据系列柱形图效果是这样的:

from pyecharts.charts import Bar
from pyecharts import options as opts

c = (
    #创建柱图对象,并设置大小,也可以不设置,直接使用默认大小即可
    Bar(init_opts=opts.InitOpts(width="900px", height="500px"))
    #设置X轴数据系列,只取前10个数据,并转为列表格式
    .add_xaxis(df.goods[:10].tolist())
    #设置Y轴数据系列及显示颜色,只取前10个数据,并转为列表格式
    .add_yaxis("销售金额", df.money[:10].tolist())
    .add_yaxis("销售数量", df.num[:10].tolist())
    # 设置图表标题及位置
    .set_global_opts(title_opts=opts.TitleOpts(title="TOP10水果大单品的销售业绩",pos_left="left"))
    #通过render()方法将柱图在Web中渲染为html
#     .render("柱形图.html")
)

# 直接在notebook中作渲染
c.render_notebook()

渲染效果:

3.3 给柱形图换颜色 color = "RGB值/十六进制颜色码/形象色/英文首字母缩写"

from pyecharts.charts import Bar
from pyecharts import options as opts

c = (
    #创建柱图对象,并设置大小,也可以不设置,直接使用默认大小即可
    Bar(init_opts=opts.InitOpts(width="700px", height="500px"))
    #设置X轴数据系列,只取前10个数据,并转为列表格式
    .add_xaxis(df.goods[:10].tolist())
    #设置Y轴数据系列及显示颜色,只取前10个数据,并转为列表格式
    .add_yaxis("销售数量", df.num[:10].tolist(), color = "RGB(0, 0, 255)")
    # 设置图表标题及位置
    .set_global_opts(title_opts=opts.TitleOpts(title="TOP10水果大单品的销售数量",pos_left="left"))
    #通过render()方法将柱图在Web中渲染为html
#     .render("柱形图.html")
)

# 直接在notebook中作渲染
c.render_notebook()

渲染效果:

 

小结:

1. 以后再也不用在代码中一个一个敲到手累了;

2. 大概今年四五月份,在我的好友“严小样儿”的微信公众号“统计与数据分析实战”见过将DataFrame转List的方法,但因为当时只是Pyecharts的小白(也是第一次在此公众号认识到pyecharts这个库,并被它的视觉冲击性给迷住,从此就在pyecharts的路上越走越远的)。只顾着囫囵吞枣地多学几个可以装X的炫酷图表,而没有细究其原理,所以基础没有真正地打扎实。这点以后确实需要注意改善!

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!