网约车Uber(优步)交通出行数据分析(数据分析实战项目 | SQL + PowerBI)

工具:MySQL、PowerBI

数据来源:https://www.kaggle.com/fivethirtyeight/uber-pickups-in-new-york-city/home

注:个人实战锻炼项目,欢迎交流

 

一. 项目背景

1. 项目概览:根据Uber真实订单数据对基地运营及乘客出行特征进行分析,总结网约车运营过程中应关注的点,指导企业进行精细化运营。

2. 数据来源与理解:https://www.kaggle.com/fivethirtyeight/uber-pickups-in-new-york-city/home

  • uber旗下雇佣基地2014年4-9月订单表(含经纬度)-- 4,534,327条数据

  合并为同一张表

  

  • uber旗下雇佣基地2015年1-2月的订单表(含活跃车辆数、行程数)-- 354条数据

  

  •  非雇佣基地2015年1-8月的订单表(含活跃车辆数、行程数)-- 334条数据

  

  •  federal基地订单表(含订单状态)-- 276条数据

   

 

二. 分析目的

本项目作为个人练习项目:①进一步了解交通出行行业;②运用已掌握的技能及数据分析方法

 

三.分析思路

 注:使用工具为MySQL、PowerBI

 

四.数据清洗

1. 选择子集:将CSV文件导入到数据库中

(此处表名默认使用源数据集CSV文件名,实际业务中需根据业务对表名进行命名)

2. 列名重命名

3. 一致化处理

源数据中date格式不满足SQL处理要求

ALTER TABLE `uber-raw-data` ADD uberdate date;
update `uber-raw-data` set uberdate = STR_TO_DATE(Date,'%m/%d/%Y');
ALTER TABLE `uber-jan-feb-foil` ADD uberdate date;
update `uber-jan-feb-foil` set uberdate = STR_TO_DATE(date,'%m/%d/%Y');
ALTER TABLE `other-fhv-services_jan-aug` ADD uberdate date;
update`other-fhv-services_jan-aug` set uberdate = STR_TO_DATE(PickUpDate,'%m/%d/%Y');

 

4. 重复值处理

未发现重复值

#重复值处理(表中不存在唯一ID,对整行数据进行判断)
SELECT COUNT(*) FROM `other-federal_02216`;-- 有订单状态信息的federal基地表
SELECT DISTINCT COUNT(*) FROM `other-federal_02216`;
SELECT COUNT(*) FROM `other-fhv-services_jan-aug`;-- 非雇佣基地2015/1-8月的订单表
SELECT DISTINCT COUNT(*) FROM `other-fhv-services_jan-aug`;
SELECT COUNT(*) FROM `uber-jan-feb-foil`;-- uber旗下雇佣基地2015/1-2的订单表(车辆数/订单数)
SELECT DISTINCT COUNT(*) FROM `uber-jan-feb-foil`;
SELECT COUNT(*) FROM `uber-raw-data`;-- uber旗下雇佣基地2014/4-9的经纬度表
SELECT DISTINCT COUNT(*) FROM `uber-raw-data`;

 

5. 缺失值处理

未发现缺失值

 

6. 异常值处理

#federal基地订单表
SELECT `Status`,count(`Status`) as snum,count(`Status`)/276 as spercent FROM `other-federal_02216`
GROUP BY `Status`;-- 订单状态,无异常值
#非雇佣基地2015/1-8月的订单表 SELECT * FROM `other-fhv-services_jan-aug` WHERE `PickUpDate` < '01/01/2015' or `PickUpDate` > '31/08/2015';-- 订单日期无异常值 SELECT NumberofVehicles,count(NumberofVehicles) FROM `other-fhv-services_jan-aug` GROUP BY NumberofVehicles ORDER BY NumberofVehicles;-- 车辆数存在异常值“-”,进一步查询源数据集是因为未录入 SELECT NumberofTrips,count(NumberofTrips) FROM `other-fhv-services_jan-aug` GROUP BY NumberofTrips ORDER BY NumberofTrips;-- 订单数存在异常值,csv文件中的千位分隔符,在数据库中无法识别 UPDATE `other-fhv-services_jan-aug` SET NumberofTrips = REPLACE(NumberofTrips,',','');-- 此处NumberofTrips为varchar类型,使用字符串替换方法,否则使用乘法
#uber旗下雇佣基地2015/1-2的订单表 SELECT *,trips/active_vehicles as avg_utv FROM `uber-jan-feb-foil` ORDER BY avg_utv;-- 无异常值
#uber旗下雇佣基地2014/4-9的订单表 SELECT Base,COUNT(base) FROM `uber-raw-data` GROUP BY Base;-- 无异常值

 

五.数据分析

 (一)基地分析

#对uber-raw-data表中的date、time进行处理,提取月份、周几、小时
CREATE VIEW uberorder_LL2014 AS
SELECT Base,lat,lon,uberdate,month(uberdate) as m,(weekday(uberdate)+1) as w,Time,HOUR(Time) as h FROM `uber-raw-data`;

创建视图数据如下

 

1. 总体运营情况

①业务增长情况(基于2014年4-9月数据)

SELECT *,((sorder - lead_sorder)/lead_sorder) as '环比增长率' 
FROM(
    SELECT m,sorder,lead(sorder,1) over(ORDER BY m DESC) as lead_sorder
    FROM (
        SELECT month(uberdate) as m,COUNT(base) as sorder FROM `uber-raw-data`
        GROUP BY month(uberdate))t
    )s;-- 按月份计算环比增长率

 2014年4-9月,Uber业务一直在增长,7月、9月的环比增长最大,9月业务环比增长23.98%

 

②不同基地订单总量比较(基于2014年4-9月数据)

数据显示,在2014年4-9月期间,基地B02617、B02598、B02682订单量更多,业务量排名第一的基地B02617贡献了32.17%的订单

 

③基地运营效率(基于2015年1-2月数据)

基于行程数、活跃车辆数分析基地运营效率(由于2014年数据中缺少车辆数据,此处基于2015年1-2月数据分析)

#计算各个基地总行程数、总活跃车辆数、每辆车每日平均接单数
SELECT dispatching_base_number,SUM(trips),SUM(active_vehicles),SUM(trips)/SUM(active_vehicles) as avg_butv 
FROM `uber-jan-feb-foil` 
GROUP BY dispatching_base_number 
ORDER BY avg_butv DESC;

基地B02764订单量是最大的,但其运营效率排第四,基地B02682每辆车每日平均接单数最多。应结合基地地理位置、实际订单时间及区域分布进行进一步分析,提高车辆利用率。

 

2. 订单变化趋势

基地订单增长趋势(基于2014年4-9月数据)

2014年4--9月份的Uber旗下五家基地:

出现大幅增长的是B02617(深褐色) B02764(黄色),订单量几乎不变的基地是B02512(绿色)B02598(蓝色),而基地B02682(红色)出现了较大幅度下滑,需结合业务实际具体分析原因

 ②业绩下滑基地后续订单情况

进一步查看2015年1-2月的数据,原本业务下滑较严重的基地B02682(红色)订单量已回升。

 

3. 订单区域分布(基于2014年4-9月数据)

 ①椭圆区域7月、8月订单量急剧增长:

结合该区域地理位置(新泽西海岸线)及业务实际情况,推测是由于旅游带来的业务增长。实际业务中可根据旅游行业相关数据对旅游旺季及区域进行预测,并采取与商家合作等业务策略,提升业务量并对车辆进行合理调度。

 ②矩形区域6月开始无订单出现:

对6月的订单分布进行进一步分析,分别查看5个下属基地的订单分布,均未在此区域产生订单,结合该区域行政及地理位置,推断可能是优步的业务策略调整(跨城订单),由于数据集中缺少这部分数据,暂无法分析。

 ③除因旅游带来的小范围订单增长,从整体区域分布看,4-9月,uber的业务一直在扩张

 

4. 订单满足率分析

 以federal基地为例对Uber的订单满足率进行分析

①订单满足情况分析

SELECT `Status`,count(`Status`) as snum,count(`Status`)/276 as spercent FROM `other-federal_02216`
GROUP BY `Status`;

federal基地的完成订单占46.38%,订单取消率为10.51%,需优化调度策略,提升订单满足率,降低订单取消率

 

 

 ②订单取消分析

进一步分析取消部分订单:时间、地点

SELECT *,LEFT(Time,2) as h FROM `other-federal_02216` WHERE `Status` = 'Cancelled';

取消订单发生时间集中在1-12点之间,根据取消订单信息及词云分析,取消订单主要目的地都是机场(La Guardia Airport、John F Kennedy International Airport),这说明夜间前往机场的订单难以得到满足,需结合业务对凌晨及上午的活跃车辆进行合理调度并采取一定措施(如夜间补贴、空车费等)引导司机接前往机场的订单。

 

 

 

 

 

 

5. Uber VS for-hire vehicle (FHV) companies

数据集中还提供了其他出租车公司的订单数据,我们对Uber与FHV的订单进行对比

-- uber旗下基地订单量(2015/1-2)
SELECT *,ROUND((trips/active_vehicles),2) as avg_utv FROM `uber-jan-feb-foil`
ORDER BY avg_utv DESC;

 Uber下属基地每辆车平均每天接单量大部分都在8单以上

-- 非雇佣基地订单量(2015/1-8)
SELECT *,ROUND((`NumberofTrips`/`NumberofVehicles`),2) as avg_tv FROM `other-fhv-services_jan-aug`
WHERE NumberofVehicles >= 1
HAVING avg_tv < 100
ORDER BY avg_tv DESC;-- 日接单量>100的数据视为异常数据,需具体分析,此处仅剔除后进行分析

其他出租车公司的车辆日接单量明显低于Uber,且业务总量有下降趋势

 

(二)用户出行特征分析

1. 用户出行时间偏好

 ①按小时(一天的出行规律)

SELECT h,count(h) as sh FROM 
(SELECT uberdate,h,count(Base) FROM uberorder_LL2014
GROUP BY uberdate,h
ORDER BY uberdate)t
GROUP BY h;-- 计算结果count(h)为183
SELECT h,count(Base)/183 as sorder FROM uberorder_LL2014
GROUP BY h;-- 按小时

 一天中乘客的出行高峰出现在早上7点和下午5点,考虑主要为上下班高峰,针对上下班高峰需提前调度车辆,以满足高峰期出行订单需求

 ②按周(一周的出行规律)

SELECT t1.w,t1.sorder,t2.sw,t1.sorder/t2.sw as avgorder FROM 
(SELECT w,count(Base) as sorder FROM uberorder_2014 GROUP BY w)t1
INNER JOIN
(SELECT w,count(w) as sw FROM(SELECT DISTINCT uberdate,w FROM uberorder_2014)t GROUP BY w)t2
ON t1.w=t2.w
ORDER BY t1.w;-- 按周

 出行高峰出现在周四、周五

 

③按月

按月订单主要源于业务增长,除此之外,主要考虑由于旅游旺季、节假日等带来的季节性业务增长。

 

2. 用户出行区域分布

①日出行高峰时间段区域分布(7点、17点)

7点、17点的出行订单分布较为集中,主要集中在办公楼集中区域、商圈、住宅区,可根据办公集中区域、住宅集中区域的经纬度进行车辆的合理调度

 

 ②日常出行区域主要集中在城市中心区,旅游旺季会向旅游区扩张

建议结合用户不同出行需求,调整业务策略,最大化车辆的利用率,提升业务量。

 

六. 总结

1. 基地运营
2014年、2015年,Uber业务一直处于增长状态,但其下属基地运营情况参差不齐,在提升业务量的同时,需注意调整各基地的运营策略,提升车辆利用率及订单满足率;
2. 提升订单满足率
针对凌晨机场订单等取消率较高的订单,需根据实际业务进一步分析,从地理位置、时间、取消原因等角度考虑,降低订单取消率;
3. 季节性业务
从时间、区域维度,可利用外部数据,对旅游旺季、节假日订单进行预测,同时可采取策略与商家达成合作,以合理调度活跃车辆,提升业务量;
4. 用户出行特征
合理利用用户行为数据,根据日常用户出行时间(7点、17点为出行高峰(日);周四、周五(周))和区域(办公集中区、住宅集中区)及季节性出行特征构建模型并进行预测,指导车辆调度及业务策略。

posted @ 2020-07-07 17:01  我打江南走过  阅读(4120)  评论(0编辑  收藏  举报