mongodb添加多条数据_分析了一万多条拼车数据,看看北上广深的各位都回哪过年...

本文分析了13041条拼车数据,涉及北京、上海、广州、深圳、杭州等地。数据显示,男性乘客略多于女性,深圳乘客最愿意加价且平均加价额度最高。同时,通过可视化路线图揭示了各地返乡趋势。数据存储于MongoDB,并使用Python和Pyecharts进行处理和可视化。
摘要由CSDN通过智能技术生成

bf2993467725e83eb7c42aed191a2f10.png

快过年了,很多同学都踏上了返乡的路。现在交通这么发达,除了高铁飞机外,还可以搭顺风车回家。今天的这篇文章我们就来分析一下拼车数据,看看今年大家都回哪儿过年。

分析了一万多条拼车数据,看看北上广深的各位都回哪过年 作者:ElliotBai | 来源:InTrirty

前言

很早之前发过一篇关于某拼车平台爬虫的文章,因为工作比较忙,一直没有下文。最近年底稍微空了些,加上碰上春节返乡大潮,刚好再拿过来写一下数据分析的思路。

本次数据样本共13041条,本别采集了北京、上海、广州、深圳、杭州的某一天出行数据,由于手动操作难以保证取样的公平性,所以不能对全部数据结果的准确性做保证,本文以提供思路参考为主,先放一张路线图:

d4aeffb225be78c03dd67c20909e5376.png

统计结果

好了知道大家比较关心结果,所以先把结果放一放,后面再接着讲分析过程。

乘客性别

先单独把性别拎出来看一下,后面再根据城市进行分析,结果显示,抛开未设置性别的乘客不论,总体来看顺风车的用户群中,男性(占比49.39%)还是多于女性(占比31.55%)的。毕竟跨城顺风车,大过年的,女性乘客对于安全性的忧虑还有要有的。

f47d0d9d2dead7d3601173863f44f410.png

城市订单

真实数据的话订单数量应该是深圳 > 北京 > 广州 > 上海 > 杭州,但是同一个城市内的乘客性别比例应该还是具有一定的参考价值的,可以看到北京、上海、深圳的女性乘客数量占比都是高于男性的。 

e50f4e7b9b1e7932ec939aa03b7bdfb2.png

客单价

原本是想比较一下平均路程长度,但是想想这个事情太折腾了,由于平台主要还是依靠路程来计算拼车费用的,所以通过计算客单价的话大概也能反映一下平均形成长度(我猜的,然后结果是这样的,没想到广州是最高的,也可能是我统计错误

c319b39cc83c77d230313116f190ab69.png

哪里乘客最壕

有时候有些偏远地区订单或者顺路司机少,乘客会加价希望司机接单,于是统计了一下各城市加价订单的占比和平均的加价额度,得出如下结果:

占比最高的城市是深圳,平均加价额度最高的城市也是深圳,看来深圳的小哥哥小姐姐们的确出手阔错,然而加价比例最低的是北京,不过这也不能说明帝都人民不壕气,可能就是人家繁华,司机多。

1095e373c9c02348c098653cd7d538df.png

返乡路线图

最后放几张返乡的路线图

北京

d4aeffb225be78c03dd67c20909e5376.png

上海

f8804c48fc9385b4ce6e20e6c88660d0.png

c8d9e85a7377503114fbe9ca145d84ee.png

广州

cd9f4bcdd2c4da77f97fd46ff308d057.png

a63618b33b6a9f4772a8e8c577bb30d4.png

深圳

b1190960b2e8182e31933c79c37bfbf5.png

杭州

杭州明显有别与其它几个城市,一个是杭州的数据样本多,另外一个平台上杭州黄牛多,那些最远的单子就是黄牛广告单

5cc223f45ccffe61b1f98a2fa5cc7440.png

88aadf1b7398680fa23ae6695e5373f6.png

爬虫思路

注册成为司机,利用mitm抓包存储拼车单

统计思路

数据的话我是通过本地Mongodb存储,所以直接用python操作Mongodb数据。

Pymongo

关于Mongodb数据库的连接,直接上代码:

client = MongoClient('mongodb://localhost:27017')
spring = client.spring
collection = spring['orders']

以上代码的意思就是连接本地Mongodb-spring数据库-orders文档集合

Pyecharts

Pyecharts(http://pyecharts.org)是大名鼎鼎的Echarts的Python可视化图表库,用起来挺顺手的,而且文档规范,基本上可以零门槛入门,具体实现请移步文档。

这里介绍一下关于Pyecharts的图表样式配置,为了保持各图表的样式统一(偷懒),Pyecharts提供了一个Style类,可用于在同一个图或者多个图内保持统一的风格

from pyecharts import Style,Geo

style = Style(
   title_color="#fff",
   title_pos="center",
   width=1100,
   height=600,
   background_color='#404a59'
)
# style.init_style 会返回类初始化的风格配置字典
geo = Geo("全国主要城市空气质量", "data from pm2.5", **style.init_style)

这样,就创建了一个Geo地理坐标系图表

代码解读

因为全部代码有点长,所以抽了一段举个例子,主要思路就是从Mongodb取出指定数据,或者通过$group管道对数据进行处理,最后通过pyecharts生成相应的图表,呈现

from pymongo import MongoClient
from pyecharts import Style,GeoLines

def getLines(self):
   # 连接数据库
   client = MongoClient('mongodb://localhost:27017')
   spring = self.client.spring
   collection = self.spring['orders']
   
   # Mongodb的操作,$match-筛选出'from_poi.city.city_name'为'杭州'的文档,
   # 再通过$group管道,按照目标城市统计出汇总数量
   line_hangzhou = collection.aggregate([
       {'$match': {'from_poi.city.city_name': '杭州'}},
       {'$group': {'_id': '$to_poi.city.city_name', 'count': {'$sum': 1}}}
   ])
   # 按照Geolines图表的数据格式格式化数据
   line_hangzhou_ = []
   for line in line_hangzhou:
       line_hangzhou_.append(["杭州", line['_id'], line['count']])
       
   # 创建一个GeoLines图表
   citylines = GeoLines("春节迁移路线图", **style.init_style)
   # 添加数据以及样式
   citylines.add("从杭州出发",
                 line_hangzhou_,
                 **geo_style)
   # 生成html文件
   citylines.render("results/citylines.html")

源码已上传Github,可在此获取:

https://github.com/bkidy/Dida_spider

看完本文有收获,欢迎转发、留言、点右下角好看哦。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值