Python | 计算一天内每小时 / 30分钟出租车订单的数量,并绘制订单时变情况的折线图

一、案例目的

在python中计算一天内每小时 / 30分钟出租车订单的数量,并绘制订单时变情况的折线图。

二、练习数据

深圳市出租车GPS数据:TaxiData-Sample.csv
核心字段:车辆ID(Num),时间(Time),经度(Lon),纬度(Lat),载客状态(OpenStatus)。说明:当OpenStatus值为1的时候,为载客状态,反之OpenStatus值为0时为空载(如图所示)。
在这里插入图片描述

三、解题思路

  1. 对出租车GPS数据进行数据清洗及预处理
  2. 利用TransBigData提取出租车OD
  3. 对OD数据的接单时间按小时/分钟进行分组
  4. 统计每个时段的订单数量
  5. 利用matplotlib绘制折线图

四、代码实现

1.数据清洗及预处理

为什么要进行数据清洗?
因为出租车GPS数据的OpenStatus字段中可能会出现异常情况:

  • 在连续0的序列中,突然出现一个1
  • 在连续1的序列中,突然出现一个0

这种两种情况的产生都极有可能是采集设备的突发异常造成的,这些记录的存在会影响出行订单判断。因此在数据清洗中,应将这两种情况都予以剔除。

本次练习主要利用TransBigData包中的 tbd.clean_taxi_status()对出租车GPS数据进行清洗(参考:TransBigData出租车GPS数据处理)。

#导入所需模块
import pandas as pd
import geopandas as gpd
import transbigdata as tbd
import datetime
import numpy as np

#输入数据
data = pd.read_csv('data/TaxiData-Sample.csv',header= None)
#由于原始数据没有列名,因此这里需要重新命名
data.columns = ['Num','Time','Lon','Lat','Openstatus','Speed']
#删除多余列Speed
data = data.drop(columns='Speed')
#数据排序:根据车辆Num和Time
data = data.sort_values(by=['Num','Time'])
#利用TransbigData进行数据清洗
data = tbd.clean_taxi_status(data,col=['Num'
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值