成都市出租车数据集提取OD点

1.数据集介绍

使用的数据集来自DataCastle平台的成都市出租车数据集,原始数据集记录了超过13000辆出租车将近亿条的轨迹数据,轨迹收集的日期为201483日至830日,具体时间为6:00:0023:59:59。数据集中记录了车牌号、纬度、经度、载客状态(有客为1,无客为0)、日期以及时间信息。

由于原始数据集很大,所以提取了2014年8月6日的轨迹数据进行实验

实验环境:jupyter notebook

(若想获得原始数据集,请在下方评论区留言)

2.读取数据

导入所需要的包

import transbigdata as tbd
import CoordinatesConverter #GPS数据转换库
import geopandas as gpd
import matplotlib.pyplot as plt
import pandas as pd

使用pandas读取文件

data = pd.read_csv('20140806_train.csv',header=None)#读取文件
data

 

为数据带上表头

data.columns = ['VehicleNum','Lat','Lng','OpenStatus','STime']#带上表头

查看数据统计

tbd.data_summary(data, col=['VehicleNum', 'STime'], show_sample_duration=False, roundnum=4)#查看数据统计

 

 修改STime格式,去掉日期(年/月/日)显示 

3.提取OD点

#筛选前的数据量
len(data)
54175521
#筛选后的数据量
len(data)
47650010

 将表格中每条数据上移一行,得到StatusChange,若此值为1,则为上车点,若此值为0,则为下车点

data.loc[:,'OpenStatus1'] = data['OpenStatus'].shift(-1)
data.loc[:,'VehicleNum1'] = data['VehicleNum'].shift(-1)
data.loc[:,'Lng1'] = data['Lng'].shift(-1)
data.loc[:,'Lat1'] = data['Lat'].shift(-1)
data.loc[:,'STime1'] = data['STime'].shift(-1)

data.loc[:,'StatusChange'] = data['OpenStatus1']-data['OpenStatus']

查看结果,只展示前5行

data.head(5)

#提取OD(上车/下车点)
data = data[((data['StatusChange'] == 1)|(data['StatusChange'] == -1))
&(data['VehicleNum'] == data['VehicleNum1'])]
#数据只保留一些我们需要的字段
data = data[['VehicleNum','STime','Lng','Lat','StatusChange']]
data.head(5)

4.保存为csv文件 

 将上车点单独保存为一个文件

ondata = data
ondata = ondata[(ondata['StatusChange'] == 1)]
ondata.to_csv(r'ChengduTaxiON-Sample.csv',index = None)

 将下车点单独保存为一个文件

outdata = data
outdata = outdata[(outdata['StatusChange'] == -1)]
outdata.to_csv(r'ChengduTaxiOUT-Sample.csv',index = None)

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值