DCIC-A城市巡游车与网约车运营特征对比分析-任务1

一、背景

赛题说明:

出租车作为城市客运交通系统的重要组成部分,以高效、便捷、灵活等优点深受居民青睐。出租车每天的运营中会产生大量的上下车点位相关信息,对这些数据进行科学合理的关联和挖掘,对比在工作日以及休息日、节假日的出租车数据的空间分布及其动态变化,对出租车候车泊位、管理调度和居民通勤特征的研究具有重要意义。

  • 出租车/网约车:上下车地点挖掘;
  • 出租车/网约车:不同日期的空间变化;
  • 出租车/网约车:泊车和调度问题;

赛题任务:

根据赛事方提供的出租车(包括巡游车和网约车)GPS和订单数据

  • 一综合应用统计分析方法对所提供的巡游车和网约车运营的时间、空间分布特征进行量化计算,包括计算两年的每年工作日取日平均,非工作日取日平均和节假日取日平均,三种类型各自平均的时变分布变化,三种时间类型按网格划分的平均空间分布(网格划分颗粒度选手自选),并分别对比分析所提供的网约车、巡游车,计算两年每年按工作日取日平均,非工作日取日平均和节假日取日平均三种类型的日均空驶率、订单平均运距、订单平均运行时长、上下客点分布密度等时变特性。

赛题思路:

数据介绍

巡游车GPS数据	taxiGps20200619.zip	2020年端午前一周A城市巡游车GPS数据
赛题数据分为四类:

  • 巡游车GPS数据(2019年、2020年);
  • 巡游车订单数据(2019年、2020年);
  • 网约车GPS数据(2019年、2020年);
  • 网约车订单数据(2019年、2020年);

数据读取

因为数据都是按照时间进行划分的,所以可以分别读取单个文件完成数据分析,比如,可以先完成巡游车taxiGps20190531.csv数据分析,进而可以直接将分析逻辑应用到taxiGps20190601.csv文件中。

由于赛题给定的数据集文件都比较大,文件行数都比较多,如果完全进行读取可能会让电脑卡死,内存爆炸,可以

  • 只读部分文件,读取单个文件完成数据分析;
1、以巡游车GPS数据读取为例进行说明:
  • 通过read_csv函数输入路径和nrows设置读取的文件行数;
  • nrows可以取值为数值或者None,前者数值控制行数,后者读取所有(默认是读取所有);
  • 读取完成后的数据为DataFrame形式,可以通过describe()函数完成描述型分析;
#文件读取行数
max_rows=100000
taxigps2020=pd.read_csv(os.path.join(filepath,'taxiGps20200619.csv'),nrows=max_rows)
taxigps2020.describe()

taxigps2020.info()


通过Info()函数,我们可以发现,现在读取的10w条数据已经占用5MB的内存,我们也可以完成数据字段压缩的操作,将字段类型根据取值进行修改,压缩内存使用需求。

taxigps2020=pd.read_csv(os.path.join(filepath,'taxiGps20200619.csv'),nrows=max_rows
                       ,dtype={
                           'RUNNING_STATUS':np.uint8,    #int64  
                                'GPS_SPEED':np.float32, #float64
                               'DRIVING_DIRECTION':np.uint16, #   int64  
                             # GPS_DATE   object 
                              ' LONGITUDE':np.float32 , #   float64
                               'LATITUDE':np.float32#       float64
                              #  CARNO       object 
                           
                       })

taxigps2020.info()


把该表字段逆序显示

taxigps2020=taxigps2020[taxigps2020.columns[::-1]]


为方便查看数据,对GPS数据进行排序,

taxigps2020.sort_values(by=['CARNO','GPS_DATE'],inplace=True)

taxigps2020.reset_index(inplace=True,drop=True)# 注意如果不加drop=True则会新多出一列字段名为‘index’的列
taxigps2020.head()

多个文件(多天)可以直接将文件进行拼接即可,下面以巡游车2020年6月18日和6月19日两天数据为例进行拼接

#出租车2020年GPS
taxigps2020_=pd.concat([pd.read_csv(os.path.join(filepath,'taxiGps20200618.csv'),
                                        nrows=max_rows,
                                               dtype={
                                                   'RUNNING_STATUS':np.uint8,    #int64  
                                'GPS_SPEED':np.float16, #float64
                               'DRIVING_DIRECTION':np.uint16, #   int64  
                             # GPS_DATE   object 
                              ' LONGITUDE':np.float32 , #   float64
                               'LATITUDE':np.float32#       float64
                              #  CARNO       object 
                                               }),
                      pd.read_csv(os.path.join(filepath,'taxiGps20200619.csv'),nrows=max_rows,
                                 dtype={
                                     'RUNNING_STATUS':np.uint8,    #int64  
                                'GPS_SPEED':np.float16, #float64
                               'DRIVING_DIRECTION':np.uint16, #   int64  
                             # GPS_DATE   object 
                              ' LONGITUDE':np.float32 , #   float64
                               'LATITUDE':np.float32#       float64
                              #  CARNO       object 
                                     
                                 })
                      ])
taxigps2020_=taxigps2020_[taxigps2020_.columns[::-1]]
taxigps2020_.sort_values(by=['CARNO','GPS_DATE'],inplace=True)

taxigps2020_.reset_index(inplace=True,drop=True)

查看一下拼接后的数据大小

发现行数只有20w?这难道只是拼接了指定的行数,那剩下的行数怎么办?

2、巡游车订单读取

2.1 巡游车订单数据单个文件读取:
2.2 巡游车订单数据多个文件读取:

3、网约车GPS数据读取
4、网约车订单数据读取

后续学习将以巡游车GPS0531的数据为案例进行数据统计,另外各表的字段含义也要再理解下。

两个遗留问题以及下个任务见!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值