目录
一、提前准备
1、python第三方库的准备
2、SQL文件的准备
二、项目背景
三、数据预处理
1、导入相关库
2、构建通道
3、文件读取与合并
4、相关信息的预处理
5、预处理完整代码
四、销售额随时间变化的可视化
1、计算最小销售额的日期时间
2、销售额随时间变化的可视化
3、销售额随时间变化数据分析
五、星期与销售额的关系
1、分组聚合
2、进行星期排序
3、柱形图绘制
4、饼图绘制
5、星期与销售额关系数据分析
六、时间、销售额与订单量的关系分析
1、分组聚合处理
2、气泡图绘制
3、时间、销售额与订单量的关系数据分析
七、项目总结 1、python第三方库的准备 pandasnumpysqlalchemypymysqlmatplotlib 2、SQL文件的准备 meal_order_detail1meal_order_detail2meal_order_detail3
想通过这个项目来学习python数据分析的伙伴,这里给出上面三个SQL文件的下载链接(免费下载):https://download.csdn.net/download/weixin_44940488/19442022
以某餐饮企业的订单详情表数据为可视化对象,分析以下内容(具体信息见下表):
1. 销售额随时间的变化情况;
2. 销售额与星期的关系;
3. 订单数量与销售额的关系。
其中:
order_id:订单号
dishes_name:菜品名称
counts:菜品数量
amounts:菜品单价
place_order_time:下单时间
从上面这个订单详情表上可以看出,它的列数会比较多,我们在这里只关注其中的五列数据,分别是order_id:订单号、dishes_name:菜品名称、counts:菜品数量、amounts:菜品单价、place_order_time:下单时间。其它数据在分析中用不上,不用过于去关注。 1、导入相关库
首先,我们需要用pandas库进行数据库的读取。然后,在用pandas里面的read_sql进行数据库的读取时,需要用到一个函数来构建我们的数据库到python之间的一个连接通道,这里需要用到sqlalchemy库。具体代码如下:
2、构建通道
利用sqlalchemy库中的create_engine()函数来构建mysql和python之间的数据通道,这里需要用到pymysql库(提前安装好这个库,不然后面的程序无法进行下去)。我们数据库的用户名是:root;密码:123456;数据库的IP地址和端口号:127.0.0.1:3306;数据库:test,用utf8进行文件的读取。
具体代码如下:
3、文件读取与合并
这里就要用到前面讲到的一个函数read_sql()函数来读取我们的SQL文件。读取完三个SQL文件后,我们需要将这三个表进行合并,这里需要用到pandas库里的concat()函数。因为这三个表都是8月份的订单数据,只是按照时间对它进行了一个切分。因此我们需要将这三个SQL文件合并为一个SQL文件。
4、相关信息的预处理
5、预处理完整代码
查看核心指标近期情况可以使用折线图反映数据走势,散点图反映数据分布。 1、计算最小销售额的日期时间
2、销售额随时间变化的可视化
3、销售额随时间变化数据分析
从上面展示的图表可以看出,餐饮销售额有一个很明显的周期性,周六日的销售额往往是一周内最高的,工作日时的销售额较低,这也符合大众的休闲规律,而整个月份最低的销售额出现在16号这一天。
从上面的折线图可以看出餐饮销售额有很明显的周期性。那么,现在就对星期的销售额情况做一个分析。 1、分组聚合
2、进行星期排序
3、柱形图绘制
4、饼图绘制
5、星期与销售额关系数据分析
从上面图表可以看出,周六日的订单销售额占比超过60%,周二的销售额占比最少为6.9%,星期二和星期四是我们销售额最低的两天。 1、分组聚合处理
2、气泡图绘制
3、时间、销售额与订单量的关系数据分析
从上图可以看出,时间为周六日时销售额与订单量最大,最大可超过四万块的销售额;并且订单量越多,图中的气泡(红点)就越大,可以看出依旧是周六日订单量最多。
此项目的数据直接来源于数据库的SQL文件,因此这就需要我们从数据库中读取文件然后才能开始进行预处理和数据可视化分析。而在实际工作中,我们接触到的不只是Excel文件,更多的是数据库文件(SQL文件)。
通过此项目的练习,让我知道了通过sqlalchemy库和pymysql库在数据库和python之间建立连接,然后使用pd.read_sql()函数读取数据库文件,使用 pd.concat()函数进行数据库的合并。通过pandas库和numpy库对SQL数据文件进行预处理,使用matplotlib库进行数据可视化,最后通过可视化的图表进行数据分析。
此项目的数据分析做的还不是太好,再后续学习思考中还有待完善和优化。如出现错误或可以改进的地方,欢迎大家指出。
版权声明
本文仅代表作者观点,不代表xx立场。
本文系作者授权xxx发表,未经许可,不得转载。
发表评论