当前位置: 首页 > news >正文

transbigdata笔记:数据预处理

0 数据

使用 transbigdata/docs/source/gallery/data/TaxiData-Sample.csv at main · ni1o1/transbigdata (github.com)

和transbigdata/docs/source/gallery/data/sz.json at main · ni1o1/transbigdata (github.com) 

 0.1 导入库

import transbigdata as tbd
import pandas as pd
import geopandas as gpd
import matplotlib.pyplot as plt

0.2 读取出租车轨迹数据

data=pd.read_csv('TaxiData-Sample.csv',names= ['VehicleNum', 'Time', 'Lng', 'Lat', 'OpenStatus', 'Speed'])
data

0.3 读取深圳各区json数据(并可视化)

sz=gpd.read_file('sz.json')
sz

sz.plot(figsize=(15,8))

1 数据预处理(和地理坐标相关)

1.1 clean_outofbounds

1.1.1 基本使用方法

transbigdata.clean_outofbounds(data, bounds, col=['Lng', 'Lat'])

并排除研究区域外的数据 

1.1.2 主要参数说明

data数据
bounds研究区域左下角和右上角的纬度和经度,顺序为 [lon1, lat1, lon2, lat2]
col data中经纬度列名

1.1.3 举例

tbd.clean_outofbounds(data,[114.0,22.5,114.3,22.6])

1.2 clean_outofshape

1.2.1 基本使用方法

输入研究区域的地理数据框并排除研究区域以外的数据

transbigdata.clean_outofshape(data, shape, col=['Lng', 'Lat'], accuracy=500)

1.2.2 主要参数

data数据
shape研究区的GeoDataFrame
col经纬度列名
accuracy

栅格的大小。

原理是先做数据栅格化,然后再做数据清理。

尺寸越小,精度越高

1.2.3 举例

tbd.clean_outofshape(data,sz,accuracy=100)

tbd.clean_outofshape(data,sz,accuracy=1000)

accuracy 越小,筛选得越细

2 数据预处理(和出租车相关)

2.1 clean_taxi_status

  • 从出租车数据中删除乘客携带状态的瞬时变化记录。这些异常记录会影响旅行订单判断
  • 判断方法:如果同一车辆上一条记录和下一条记录的乘客状态与该记录不同,则应删除该记录【不可以一瞬间接客/不接客】

2.1.1 主要使用方法

transbigdata.clean_taxi_status(data, col=['VehicleNum', 'Time', 'OpenStatus'], timelimit=None)

2.1.2 主要参数

data数据
col 列名,顺序为[‘VehicleNum’, ‘Time’, ‘OpenStatus’]
timelimit 

 可选,以秒为单位。

如果上一条记录和下一条记录之间的时间小于时间阈值,则将删除该记录

【个人觉得是,和上一条记录的时间差 & 和下一条记录的时间差 都小于阈值,那么删除该记录】

这个阈值表示允许状态变化的最短时间间隔

  • 对于出租车,就是前一个乘客下车,正好下一个乘客上车,那么前一个乘客下车的时间/后一个乘客上车的时间就是这个阈值;
  • 比如阈值是1分钟,如果和上(下)一条记录的时间差为90s,说明有可能是出租车无缝衔接,那么这条记录不应该删去;如果如果和上(下)一条记录的时间差为20s,这么短的时间乘客不可能上车/下车,这条记录就是噪声,应该被删去

2.1.3 举例

data = tbd.clean_outofshape(data, sz, col=['Lng', 'Lat'], accuracy=500)
data

data2 = tbd.clean_taxi_status(data, col=['VehicleNum', 'Time', 'OpenStatus'])
data2

2.1.4 删去的那些行举例说明

我们看一下删去的行都是什么特点呢?

根据pandas笔记:找出在一个dataframe但不在另一个中的index-CSDN博客

我们得到在data,但不在data2中的index

diff_index = data.index.difference(data2.index)
diff_index
'''
Index([   710,    807,    844,   1372,   1564,   1684,   1690,   1753,   2842,4150,...532055, 533757, 534219, 540261, 540471, 540481, 541260, 541263, 541889,542487],dtype='int64', length=914)
'''

看一下710行是什么东西吧:

data.iloc[710]
'''
VehicleNum         24741
Time            16:16:00
Lng           113.810135
Lat            22.626522
OpenStatus             0
Speed                  0
Name: 710, dtype: object
'''

然后看一下24741号车辆的记录

pd.set_option('display.max_rows', None)
#显示dataframe所有行data[data['VehicleNum']==24741].sort_values('Time')
#筛选 24741号 车辆,按照Time排序

确实上一条记录和下一条记录的乘客状态与该记录不同

2.1.5 timelimit


pd.set_option('display.max_rows', 10)
data3 = tbd.clean_taxi_status(data, col=['VehicleNum', 'Time', 'OpenStatus'],timelimit=25)data.index.difference(data3.index)
'''
Index([   807,    844,   1684,   1753,   6433,   6437,   7709,   7739,   9741,10852,...507166, 511979, 514909, 514954, 523687, 524631, 540471, 540481, 541260,541263],dtype='int64', length=329)
'''

此时710和后一条记录的时间间隔(38秒)大于阈值25秒,说明不是噪声,所以不删去

相关文章:

transbigdata笔记:数据预处理

0 数据 使用 transbigdata/docs/source/gallery/data/TaxiData-Sample.csv at main ni1o1/transbigdata (github.com) 和transbigdata/docs/source/gallery/data/sz.json at main ni1o1/transbigdata (github.com) 0.1 导入库 import transbigdata as tbd import pandas …...

java中解码和编码出现乱码原因

一、UTF-8和GBK编码方式 如果采用的是UTF-8的编码方式,那么1个英文字母 占 1个字节,1个中文占3个字节如果采用GBK的编码方式,那么1个英文字母 占 1个字节,1个中文占2个字节 二、idea和eclipse的默认编码方式 其实idea和eclipse的…...

60V降压3.3V稳压芯片 60V降压5V稳压芯片60V降压12V稳压芯片

60V降压3.3V稳压芯片、60V降压5V稳压芯片和60V降压12V稳压芯片是针对不同输出电压需求的降压稳压芯片。这些芯片通常被用于工业控制、通信设备、汽车电子和其他需要高电压输入并提供稳定输出电压的场合。 这些芯片通常具有高效率、低功耗和高稳定性的特点,能够在输…...

01第一个Mybatis程序+引入Junit+引入日志文件logback

Mybatis MyBatis本质上就是对JDBC的封装,通过MyBatis完成CRUD。而对于JDBC,SQL语句写死在Java程序中,不灵活。改SQL的话就要改Java代码。违背开闭原则OCP。对于事务机制,MyBatis支持 或managed模式,JDBC模式中MyBatis…...

音乐制作软件Studio One mac有哪些特点

Studio One mac是一款专业的音乐制作软件,该软件提供了全面的音频编辑和混音功能,包括录制、编曲、合成、采样等多种工具,可用于制作各种类型的音乐,如流行音乐、电子音乐、摇滚乐等。 Studio One mac软件特点 1. 直观易用的界面&…...

开源C语言库Melon之日志模块

本文向大家介绍一个名为Melon的开源C语言库的日志模块。 简述Melon Melon是一个包含了开发中常用的各类组件的开源C语言库,支持Linux、MacOS、Windows系统,可用于服务器开发亦可用于嵌入式开发,无第三方软件依赖,安装简单&…...

[NOIP2006 提高组] 作业调度方案(修改)

题目: 这里对于之前的题目进行修改记录。果然还是受不了等待,利用晚饭时间又看了这个题目。于是发现了问题。 之前的博客:https://blog.csdn.net/KLSZM/article/details/135522867?spm1001.2014.3001.5501 问题修改描述 上午书写的代码中是…...

uniapp微信小程序投票系统实战 (SpringBoot2+vue3.2+element plus ) -全局异常统一处理实现

锋哥原创的uniapp微信小程序投票系统实战: uniapp微信小程序投票系统实战课程 (SpringBoot2vue3.2element plus ) ( 火爆连载更新中... )_哔哩哔哩_bilibiliuniapp微信小程序投票系统实战课程 (SpringBoot2vue3.2element plus ) ( 火爆连载更新中... )共计21条视频…...

浏览器缓存引发的odoo前端报错

前两天,跑了一个odoo16项目,莫名其妙的前端报错, moment.js 报的错, 这是一个时间库,不是我自己写的代码,我也没做过任何修改,搞不清楚为什么报错。以为是odoo的bug,所以从gitee下载…...

如何搭建开源知识库软件AFFiNE并实现公网环境远程协作【内网穿透】

目录 前言 1. 使用Docker安装AFFINE 2. 安装cpolar内网穿透工具 3. 配置AFFINE公网访问地址 4. 实现公网远程访问AFFINE 结语 作者简介: 懒大王敲代码,计算机专业应届生 今天给大家聊聊如何搭建开源知识库软件AFFiNE并实现公网环境远程协作【内网穿…...

记忆泊车信息安全技术要求

一.概述 1.1 编写目的 记忆泊车过程涉及车辆通信、远程控制车辆等关键操作,因此需要把信息安全考虑进去,确保整个自动泊车过程的信息安全。 1.2 编写说明 此版为信息安全需求,供应商需要整体的信息安全方案。 1.3 适用范围 …...

开源分布式任务调度系统DolphinScheduler本地部署与远程访问

文章目录 前言1. 安装部署DolphinScheduler1.1 启动服务 2. 登录DolphinScheduler界面3. 安装内网穿透工具4. 配置Dolphin Scheduler公网地址5. 固定DolphinScheduler公网地址 前言 本篇教程和大家分享一下DolphinScheduler的安装部署及如何实现公网远程访问,结合内…...

C++day3作业

完善对话框,点击登录对话框,如果账号和密码匹配,则弹出信息对话框,给出提示”登录成功“,提供一个Ok按钮,用户点击Ok后,关闭登录界面,跳转到其他界面 如果账号和密码不匹配&#xf…...

设计模式⑤ :一致性

一、前言 有时候不想动脑子,就懒得看源码又不像浪费时间所以会看看书,但是又记不住,所以决定开始写"抄书"系列。本系列大部分内容都是来源于《 图解设计模式》(【日】结城浩 著)。该系列文章可随意转载。 …...

Android通过Recyclerview实现流式布局自适应列数及高度

调用 FlowAdapter 跟普通recyclerview一样使用 RecyclerView rvLayout holder.getView(R.id.spe_tag_layout); FlowAdapter rvAdapter new FlowAdapter(); FlowLayoutManager flowLayoutManager new FlowLayoutManager(); rvLayout.setLayoutManager(flowLayoutManager); r…...

AlexNet(fashion-mnist)

前言 AlexNet相较于LeNet-5具有更深的网络结构,采用relu激活函数。 AlexNet 参数更多,计算量更大,计算速度更慢,精度更高。 netnn.Sequential(nn.Conv2d(1,96,kernel_size11,stride4,padding1),nn.ReLU(),nn.MaxPool2d(kernel…...

2024新年烟花代码完整版

文章目录 前言烟花效果展示使用教程查看源码HTML代码CSS代码JavaScript 新年祝福 前言 在这个充满希望和激动的2024年,新的一年即将拉开帷幕,而数字科技的创新与发展也如火如荼。烟花绚丽多彩的绽放,一直以来都是新年庆典中不可或缺的元素。…...

Fontfabric:一款字体与设计的完美结合

一、产品介绍 Fontfabric是一款由国际字体设计公司Fontfabric开发的字体设计软件。它提供了一整套完整的字体设计工具,让用户可以轻松地创建、设计和定制自己的字体。Fontfabric拥有丰富的字体库,包括各种风格和类型,能够满足用户在不同场景…...

Python爬虫—requests模块简单应用

Python爬虫—requests模块简介 requests的作用与安装 作用:发送网络请求,返回响应数据 安装:pip install requests requests模块发送简单的get请求、获取响应 需求:通过requests向百度首页发送请求,获取百度首页的…...

江科大STM32

参考: https://blog.csdn.net/weixin_54742551/article/details/132409170?spm1001.2014.3001.5502 https://blog.csdn.net/Johnor/article/details/128539267?spm1001.2014.3001.5502 SPI:https://blog.csdn.net/weixin_62127790/article/details/132…...

从Halo部署到公网访问:手把手教你用Nginx反代搞定域名、HTTPS与安全配置

从Halo部署到公网访问:Nginx反代全流程实战指南 当你成功在本地服务器上部署了Halo博客系统,看着8080端口的测试页面时,是否思考过如何让它成为真正的互联网站点?本文将带你跨越从本地测试到公网可访问的最后一道鸿沟,…...

Netscape 浏览器:互联网时代的先驱者

Netscape 浏览器:互联网时代的先驱者 引言 自互联网诞生以来,浏览器作为连接用户与网络世界的重要工具,见证了互联网的飞速发展。在众多浏览器中,Netscape 浏览器以其创新和引领潮流的特性,成为了互联网时代的先驱者。本文将回顾 Netscape 浏览器的发展历程、技术特点及…...

红米K60澎湃OS解锁进阶:Delta面具Root实战与BL解锁后系统深度定制指南

1. 红米K60澎湃OS解锁Root前的准备工作 拿到一台已经解锁Bootloader的红米K60,想要通过Delta面具获取Root权限,准备工作至关重要。我遇到过不少小伙伴因为前期准备不足,导致刷机过程中出现各种奇怪问题。下面这些步骤都是我实测有效的方案&am…...

LizzieYzy深度解析:专业围棋AI分析平台的实战进阶手册

LizzieYzy深度解析:专业围棋AI分析平台的实战进阶手册 【免费下载链接】lizzieyzy LizzieYzy - GUI for Game of Go 项目地址: https://gitcode.com/gh_mirrors/li/lizzieyzy 在围棋AI技术日新月异的今天,如何将强大的计算能力转化为实用的分析工…...

Power BI主题模板完全指南:35+ JSON模板快速构建专业数据可视化方案

Power BI主题模板完全指南:35 JSON模板快速构建专业数据可视化方案 【免费下载链接】PowerBI-ThemeTemplates Snippets for assembling Power BI Themes 项目地址: https://gitcode.com/gh_mirrors/po/PowerBI-ThemeTemplates 在数据驱动的商业决策时代&…...

别再为MATLAB+Amesim联合仿真装环境发愁了!保姆级VS2019+2022a+2021.1安装避坑指南

MATLABAmesim联合仿真环境搭建全攻略:从零避坑到一次成功 当第一次接触MATLAB与Amesim联合仿真时,许多工程师和研究生都会在环境搭建阶段遭遇各种"玄学问题"——明明按照教程操作,却总是卡在某个环节无法继续。本文将分享一套经过…...

NotebookLM思维导图生成响应延迟超8秒?92%用户忽略的3个文档预处理致命陷阱(附自动化清洗脚本)

更多请点击: https://intelliparadigm.com 第一章:NotebookLM思维导图生成响应延迟超8秒?现象复现与归因定位 在 NotebookLM v2.3.1 环境中,用户频繁反馈「思维导图生成」功能存在显著延迟——实测端到端响应时间普遍达 8.2–14.…...

开源补丁工具包OpenClaw-Patchkit:无侵入式热更新与二进制修改实战

1. 项目概述:一个开源补丁工具包的深度解析最近在整理一些老项目的维护工具链时,又翻出了mahsumaktas/openclaw-patchkit这个仓库。这名字乍一看有点神秘,“OpenClaw”配上“Patchkit”,让人联想到某种模块化的修补工具。实际上&a…...

从蓝牙4.2到5.4:广播包格式的‘进化史’与向后兼容那些坑

蓝牙广播协议演进史:从4.2到5.4的兼容性实战指南 当你的智能手表突然无法被旧款手机发现,或者工业传感器在新版本固件下出现广播丢包——这些看似简单的连接问题背后,往往隐藏着蓝牙协议版本迭代带来的兼容性暗礁。作为无线通信领域的"毛…...

半导体测试数据可视化终极指南:STDF-Viewer从入门到精通

半导体测试数据可视化终极指南:STDF-Viewer从入门到精通 【免费下载链接】STDF-Viewer A free GUI tool to visualize STDF (semiconductor Standard Test Data Format) data files. 项目地址: https://gitcode.com/gh_mirrors/st/STDF-Viewer STDF-Viewer是…...