目前最新的共享单车公开数据可能只有深圳市政府数据开放平台[1]发布的共享单车企业每日订单表了,数据量包含2017-04-03到2021-08-30的 2.4 亿条数据,总计约 24G 大小:
《深圳共享单车企业每日订单表》在数据库中情况
深圳真不愧是改革先行者,公开的数据量如此庞大。
如此大量的数据,肯定不能直接下载。直接下载的文件仅包含本数据集的前 10 万条数据。
每条数据包含的字段:
USER_ID | 用户 id |
---|---|
COM_ID | 企业 id |
START_TIME | 开始时间 |
START_LNG | 开始经度 |
START_LAT | 开始纬度 |
END_TIME | 结束时间 |
END_LNG | 结束经度 |
END_LAT | 结束纬度 |
深圳数据开放平台也提供调用数据接口的方式进行下载:
数据接口(APIs) 是现代编程的基础,可以通过多种编程语言和工具实现。JavaScript、Python等多种编程语言和工具都可以调用 Api。
每种方法都有其特定的使用场景和优势。选择哪种方法取决于你的项目需求、所用技术栈以及个人或团队的熟悉程度。例如,如果你正在开发一个 Web 应用,JavaScript 可能是最直接的选择;如果是企业级后端系统,Java 或 C#可能更合适。对于脚本或自动化任务,Python 或 Shell 命令可能是最简单的方法。
我们选用简洁性、受欢迎的 Python 来进行数据获取,使用的方法是
requests
库,或者可以使用http.client
或第三方库如aiohttp
(异步请求)。 具体调用说明见网站[2]上的【调用说明】。
如此庞大的数据我们肯定不能全保存在 Json 或者 csv 文件中,对于共享单车订单分析这样的大数据量场景(2.7 亿条数据),我们需要选择合适的数据库。
订单数据包括时间序列和地理空间数据,因此需要一个既能高效处理大规模数据集,又支持时间和空间查询的数据库。
以下是一些推荐的数据库选项:
- PostgreSQL + PostGIS 扩展:
- MongoDB[3]:
另外根据我对数据库的熟悉情况,我选择MongoDB来储存我的数据库。
所以我们只需要用 Python 写一个requests
请求,然后将数据储存到数据库。
花了一点时间(实际在我的树莓派上静静地跑了一天程序)之后,获取了全部 24G 的数据。
若有按时间获取数据的需求,可通过增加 startDate 和 endDate 参数对数据进行筛选。你可以
接下来简单来探索下深圳市共享单车服务的使用情况。
这次先取一天——2021 年 8 月 5 号的数据。
将坐标统一为 GPS 坐标后我们进行简单的可视化,如下图,每个红色点代表一个共享单车的出发点:
这天的订单数据共计超过一百万条,并且每条数据包含订单的开始和结束的时间以及经纬度信息,当然其中有很多离群值,需要进一步筛选,也就是数据清洗。
由于没有提供开关锁的状态,无法从订单状态筛选数据,通过观察发现可以从订单的距离、平均速度、起终点是否在深圳市进行数据清洗。
我直接删除了订单距离为 0 米以及订单距离大于 40km 的数据,总的数据量从 1158199 减少到 1132736。
我们用这部分数据进行共享单车的使用模式分析,还能结合空间分布,进行一定程度的空间数据分析。
所以,我们的先对数据进行描述,可以重点关注了骑行时间、骑行次数、以及骑行距离的分布情况。
一、数据描述
1.骑行时间分布
观察共享单车的使用时间,我们发现了城市生活的节奏。早晚高峰时段的数据高峰,不仅反映了上下班的人潮,还揭示了车辆分配和维护的最佳时机。
这张图是一个柱状图,显示了 2021 年 8 月 5 日深圳市共享单车订单在 24 小时内的分布情况。横轴代表一天中的小时(从 0 点到 23 点),纵轴代表订单数量。
从图中可以观察到,在早上的某个时段(8 点左右)有一个明显的订单数量峰值,大家开始上班了。随后的几个小时内,订单数量逐渐下降,直到下午时段(16 点到 17 点之间)订单数量再次上升,形成第二个高峰,这可能与人们下班的时间相对应。到了晚上,订单数量逐渐减少,直到深夜时段达到最低点。
这样的分析有助于共享单车运营商了解用户的使用模式,从而更有效地调配车辆,确保在需求高峰时有足够的车辆可供使用。
2.骑行次数与地点
通过统计不同区域的骑行次数,我们绘制出了城市的热力图。
将热力图保存为 html 网页,此网页有 30M 大小,在线访问速度可能很慢,想要的可以关注微信公众号“renhai-lab”发送“深圳共享单车热力图 1”获取网页的下载链接。
热力图演示
3.出行距离分布
出行距离分布
这张图包含了四个子图,它们显示了不同规模的数据分布情况。每个子图都有一个 X 轴,表示“骑行距离(米)”,和一个 Y 轴,表示“概率”。这些图似乎是概率密度函数(PDF)的图形表示,每个子图覆盖不同的骑行距离范围,展示了共享单车骑行距离的分布情况。
在这些子图中,可以观察到随着骑行距离的增加,概率逐渐下降,这表明短距离骑行的频率较高。这是符合预期的,因为人们通常倾向于使用共享单车进行短途出行。随着距离的增加,选择骑行的用户可能会减少,从而导致概率下降。这些图可能用于分析骑行距离的典型值,从而帮助共享单车公司优化他们的车辆分布和调度策略。
以上仅为一部分数据分析工作,我们还可以绘制平均出行时间图、交通小区之间的出行量、共享单车的起点-终点图(OD 图),例如绘制全市 OD 图获取、单个站点的 OD 图,例如下图是上海某日共享单车到达某地铁站点衔接图——图源自《交通时空大数据分析、挖掘与可视化(Python版)[15],描述的是同济大学地铁站周边共享单车换乘地铁的分布图。
今天先写到这,此文章会在我的博客[16]更新,可以点击阅读原文[17]访问。
如果你对本文章有什么意见、对如何制作文中的图表感兴趣、或者有其它任何问题可以在博客的评论区留言,或者通过微信公众号发送私信给我。
共享单车公开数据清单
1.深圳市共享单车企业每日订单表
数据简介:深圳市政府数据开放平台[22]发布的共享单车企业每日订单表了,数据量包含 2.4 亿条数据。
时间:2017-04-03到2021-08-30
链接:https://opendata.sz.gov.cn/data/dataSet/toDataDetails/29200_00403627
数据预览:
搜索数据的时候发现有人已经整合过了:以内容下由微信公众号【立方数据学社】发表在【数据分享】8 个城市的共享单车数据(数据量约 10 亿条\免费获取),本文选了国内的城市,国外的数据可以访问原文查看。
2.上海市的摩拜单车数据
时间: 2016年8月
数据简介: 和鲸社区用户分享的共享单车数据,包括上海市2016年8月的摩拜单车数据,共十万余条。数据链接为:https://www.heywhale.com/mw/dataset/5d315ebbcf76a60036e565bf
数据字段: 订单编号、车辆编号、用户编号、起始时间、起始位置、结束时间、结束位置、轨迹。
3.北京市摩拜数据(摩拜杯算法挑战赛)
数据简介:2017 摩拜算法挑战赛公布的共享单车数据,包括北京市 2017 年 5 月两周之内 40 余万共享单车被 30 多万用户使用的情况,包括 300 余万条出行记录。数据链接为:https://www.biendata.xyz/competition/mobike/data/
数据字段:订单号、用户 ID、车辆 ID、车辆类型、骑行起始日期时间、骑行起始区块位置、骑行目的地区块位置
4.厦门市共享单车数据
数据简介:2021 数字中国创新大赛公布的厦门市 2020 年 12 月 21 日-2020 年 12 月 25 日五天的共享单车轨迹数据。数据链接为:https://data.xm.gov.cn/contest-series/digit-china-2021/index.html#/3/competition_data
数据字段:共享单车 ID、定位时间、经度(WGS84 坐标)、纬度(WGS84 坐标)、共享单车来源
参考资料
[1]
深圳市政府数据开放平台: https://opendata.sz.gov.cn/
[2]
网站: https://opendata.sz.gov.cn/data/api/toApiDetails/29200_00403627
[3]
MongoDB: https://www.mongodb.com/
[4]
交通时空大数据分析、挖掘与可视化(Python版): http://www.baidu.com/link?url=R4RQ5Tny7VHR4oagI4Ap5yRHVy8okwXT5U-zBfquwJRnsvKsjgZnBKm50Mzbeo9XtElGnZUchLCWsPyfLmEUz_
[5]
我的博客: https://cdn.renhai-lab.tech/
[6]
阅读原文: https://cdn.renhai-lab.tech/archives/共享单车数据分析
[7]
我的博客: https://cdn.renhai-lab.tech/
[8]
我的 GITHUB: https://github.com/renhai-lab
[9]
我的 GITEE: https://gitee.com/renhai-lab
[10]
我的知乎: https://www.zhihu.com/people/Ing_ideas
[11]
深圳市政府数据开放平台: https://opendata.sz.gov.cn/
[12]
深圳市政府数据开放平台: https://opendata.sz.gov.cn/
[13]
网站: https://opendata.sz.gov.cn/data/api/toApiDetails/29200_00403627
[14]
MongoDB: https://www.mongodb.com/
[15]
交通时空大数据分析、挖掘与可视化(Python版): http://www.baidu.com/link?url=R4RQ5Tny7VHR4oagI4Ap5yRHVy8okwXT5U-zBfquwJRnsvKsjgZnBKm50Mzbeo9XtElGnZUchLCWsPyfLmEUz_
[16]
我的博客: https://cdn.renhai-lab.tech/
[17]
阅读原文: https://cdn.renhai-lab.tech/archives/共享单车数据分析
[18]
我的博客: https://cdn.renhai-lab.tech/
[19]
我的 GITHUB: https://github.com/renhai-lab
[20]
我的 GITEE: https://gitee.com/renhai-lab
[21]
我的知乎: https://www.zhihu.com/people/Ing_ideas
[22]
深圳市政府数据开放平台: https://opendata.sz.gov.cn/