python写出租车计费系统_用Python绘制出租车出发点的动态热力图

Hello大家好,欢迎来到【统计GO】,本公众号定期分享一些好用的数据分析工具,帮助大家花更少的时间学更多的知识。

如果本期内容(用Python制作出租车出发点的延时热力图)。如果对您有所帮助,记得及时关注。

背景介绍

对于数据分析汇报来说,将地理空间数据进行可视化是一个非常强大的工具。

本期内容,小编用2016年的打车数据集制作了一个Gif动画,展示了纽约市周一到周日每一小时的打车地点。

数据集来自一个以前的Kaggle竞赛。在这个数据集中,大约有145万条目包含了2016年1月到6月纽约市的出租车出行信息。

Step1:利用Panda读取数据

原始的数据集已经进行了预清理,不包含任何空值,共有11列,如下图所示:

考虑到本文出发点,小编只选取了原始数据中三个变量:

pickup_datetime

pickup_longitude

pickup_latitude

接下来,通过调用panda系列的dt.dayofweek()函数,创建一个新列来计算星期数。这将返回一个从0到6的整数,其中0是Monday, 6是Sunday。最后通过调用panda系列dt.hourofday()函数,创建另一列获取小时数。下面是得到的dataframe的示例:

Step2:利用Folium绘制热图

绘制热力图的库有很多,出于个人爱好,小编使用Folium.

接下来,定义一个函数,允许你在你的Jupyter Notebook中以IFrame方式查看地图,并将地图保存为.html格式:

为了按时间周期绘制热图,使用了一个嵌套的for循环来迭代每周的每一天和每小时的排列。对于For循环中的每个迭代,我首先过滤数据,使其只包括每周一天和每小时的观察结果,然后保存这个asdf_geo。

Step3:创建Gif格式的热力图

最后一步是将热图保存为png格式,并将png文件拼接在一起创建一个gif动画。

接下来使用selenium包(web开发人员中流行的自动化工具)来自动化这个过程。要按时间顺序打开热图并捕捉截图,使用另一个嵌套的for循环在Chrome浏览器中打开文件,并将每个热图文件的截图保存在指定的文件夹中png格式。

最后是创建gif动画!首先安装和导入PIL (Python映像库)和glob包。然后,定义一个函数来将一系列png图像转换为动画的gif。我所调用的png_to_gif函数有三个参数:

path_to_images(表示.png图像文件保存在哪里);

save_file_path(定位保存.gif文件的文件夹);

每个图像帧的持续时间;

这个函数检索png图像并将它们保存为gif动画的帧。

总结

步骤1:使用pandas读取数据,从pickup_datetime创建日期和星期的列

步骤2:创建一个嵌套的for循环,遍历每个时间间隔并用folium绘制热图。

步骤3:创建gif的热图,通过自动截图捕获使用elenium包创建的png格式的每个热图,然后使用PIL和glob包。转换成一个gif动画。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值