本文主要是介绍A城市巡游车与网约车运营特征对比分析【学习】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
赛题链接
赛题背景
出租车作为城市客运交通系统的重要组成部分,以高效、便捷、灵活等优点深受居民青睐。出租车每天的运营中会产生大量的上下车点位相关信息,对这些数据进行科学合理的关联和挖掘,对比在工作日以及休息日、节假日的出租车数据的空间分布及其动态变化,对出租车候车泊位、管理调度和居民通勤特征的研究具有重要意义。
- 出租车/网约车:上下车地点挖掘;
- 出租车/网约车:不同日期的空间变化;
- 出租车/网约车:泊车和调度问题;
赛题思路
赛题数据
赛题任务
通过赛题理解&数据分析,参赛选手需要回答上述问题:
- 每年工作日取日平均,非工作日取日平均和节假日取日平均,三种情况下出租车&网约车:
- 运营时间规律:出车时间和运行时间;
- 空间分布规律:城市分布规律,订单分布规律;
- 日均空驶率:空驶里程(没有载客)在车辆总运行里程中所占的比例;
- 订单平均运距:订单平均距离计算;
- 订单平均运行时长:订单平时时长计算;
- 上下客点分布密度:上下车位置分布;
- 对出租车&网约车的调度、融合发展提出建议:
- 如何进行订单调度?识别打不到车的位置;
- 如何进行停车场推荐?
- 订单差异性分析?
Task1——数据读取
我们对taxiGps20190531.csv数据分析
import pandas as pd
import numpy as np# 文件目录,相对路径
INPUT_PATH = 'C:/Users/HP/Desktop/doc/'# 文件读取行数
MAX_ROWS = 100000 #拼接两个日期的出租车gps数据
taxigps2019 = pd.concat([pd.read_csv(INPUT_PATH + 'taxiGps20190531.csv', nrows=MAX_ROWS,dtype={'GETON_LONGITUDE':np.float32,'GETON_LANTITUDE':np.float32,'GETOFF_LONGITUDE':np.float32,'GETOFF_LANTITUDE':np.float32,'PASS_MILE':np.float16,'NOPASS_MILE':np.float16,'WAITING_TIME':np.float16}),
pd.read_csv(INPUT_PATH+'taxiGps20200620.csv',nrows=MAX_ROWS,dtype={'GETON_LONGITUDE':np.float32,'GETON_LANTITUDE':np.float32,'GETOFF_LONGITUDE':np.float32,'GETOFF_LANTITUDE':np.float32,'PASS_MILE':np.float16,'NOPASS_MILE':np.float16,'WAITING_TIME':np.float16})
])
taxigps2019.describe()#描述性分析
taxigps2019.info()#基本信息
taxigps2019=taxigps2019[taxigps2019.columns[::-1]]#按列倒序排列
taxigps2019.sort_values(by=['CARNO','GPS_TIME'],inplace=True)#CARNO和GPS_TIME排序
taxigps2019.reset_index(inplace=True,drop=True)#将会将原来的索引index作为新的一列,使用drop参数设置去掉原索引taxigps2019=taxigps2019.rename(columns={'CAR_NO':'CARNO'})
taxigps2019=taxigps2019[taxigps2019.columns[::-1]]
taxigps2019['CARNO'].nunique()#有多少辆出租车
np.clip(taxigps2019['GPS_SPEED'].values,0,150).mean()#出租车平均GPS速度
taxigps2019['OPERATING_STATUS'].value_counts()#出租车运营状态统计
taxigps2019[taxigps2019['DRIVING_DIRECTION']==10]['CARNO'].unique()#某个运行方向的车辆统计
taxigps2019['GPS_TIME']=pd.to_datetime(taxigps2019['GPS_TIME'])#统计记录最多的GPS小时
taxigps2019['GPS_TIME'].dt.hour.value_counts()
- 统计巡游车GPS数据在
20190603
中包含多少俩出租车🚖? - 统计网约车GPS数据在
20190603
中包含多少俩网约车🚗? - 统计巡游车订单数据在
20190603
中上车经纬度的最大最小值? - 统计网约车订单数据集在
20190603
中下车经纬度最常见的位置?- 假设经度+维度,各保留三维有效数字组合得到具体位置
- 小提示:可以将经纬度拼接到一起进行统计
taxigps2019=pd.read_csv(INPUT_PATH+'taxiGps20190603.csv',nrows=MAX_ROWS)
taxiorder2019=pd.read_csv(INPUT_PATH+'taxiOrder20190603.csv',nrows=MAX_ROWS)
wycgps2019=pd.read_csv(INPUT_PATH+'wycGPS20190603.csv',nrows=MAX_ROWS)
wycorder2019=pd.read_csv(INPUT_PATH+'wycOrder20190603.csv',nrows=MAX_ROWS)
#print(taxiorder2019.head())
wycgps2019=wycgps2019.rename(columns={'CAR_NO':'CARNO'})
print('taxigps CARNO:', taxigps2019['CARNO'].nunique())
print('wycgps CARNO:',wycgps2019['CARNO'].nunique())
print('_____________________')
print(taxiorder2019['GETON_LONGITUDE'].max())
print(taxiorder2019['GETON_LATITUDE'].max())
print('_____________________')
print(wycorder2019['DEP_LONGITUDE'].max())
print(wycorder2019['DEP_LATITUDE'].max())
print('_____________________')
LONG=round(wycorder2019['DEST_LONGITUDE'],3)
#print(LONG.head())
LATI=round(wycorder2019['DEP_LATITUDE'],3)
pos=(LONG.map(str)+LATI.map(str))
print(pos.value_counts())taxigps CARNO: 6617
wycgps CARNO: 11558
_____________________
123.72247800000001
29.401106
_____________________
118.35051999999999
24.82657
_____________________
118.05724.587 51
118.19724.497 50
118.07524.585 48
这篇关于A城市巡游车与网约车运营特征对比分析【学习】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!