当前位置: 首页 新闻详细

车联网计算卸载问题有哪些,车联网数据分析之用户出行数据分析

专业物联网产品平台——让生活更美好

电话+V:159999-78052,欢迎咨询车联网任务卸载数据集,[物联网技术分享],[物联网场景应用],[物联网产品推广],[物联网流量搜索],[物联网产品创新],[物联网广告价值],[助力创造美好生活]

一、车联网计算卸载问题有哪些

问题如下:

1、通信延迟问题:将计算任务从车载计算设备转移到云端服务器上进行处理,需要通过网络传输数据,会增加通信延迟,影响计算效率。

2、数据隐私和安全问题:车联网应用中涉及到大量的车辆和驾驶员信息,将数据传输到云端服务器上进行处理,可能会导致数据泄露和信息安全问题。

二、苹果手机打游戏怎么分屏回消息?

微信又有什么大更新

iOS微信更新,「悬浮窗口」让你的微信更好用

昨日,iOS版本微信更新,官方介绍「可以把浏览的文章缩小为浮窗」。

怎么操作呢?第一种方法是点击右上放的「…」选择「浮窗」,第二种方法是手势操作,直接向右滑动,将链接放入右下方。

不仅仅是公众号文章,各种网页链接都能用,在微信打开「百度」搜索一下,再回到聊天界面,这种操作可以和「分屏」媲美,而且将在一个页面内直接操作,更加方便和符合使用习惯。

举例,下次你看AppSo的限免合集的文章时,还可以将我们为你准备的下载链接打开,就能边看文章边下载应用啦,是不是听起来很棒!

除此之外,在「发现」-「看一看」-「放大镜」页面,还出现了特色栏目,「24小时新闻」、「朋友都在看」等可以在这里直达。「设置」中也多出了微信修复工具,可以帮你修复在微信遇到的联系人、聊天记录丢失等问题。

iOS用户赶快去AppStore更新最新版本吧。

而最近使用的表情单独展示、朋友圈/网页顶栏变化、公众号资料介绍页面变化则是我们之前介绍过的。Android用户可以在测试版中体验这些。

扫描下方二维码关注AppSo(微信公众号AppSo),回复关键词「667」获取微信Android测试版下载链接。

苹果新动向

苹果宣布将为去年进行了保外电池更换服务的用户返现394元

去年换过电池的用户可能会收到苹果的「转账」。苹果宣布,在17年1月1日到12月28日期间,支付了iPhone6或更新机型设备保外电池更换费用的客户,可获得Apple提供的394元保外电池更换款项。在AppleStore商店、Apple维修中心或Apple授权服务提供商完成的电池更换才符合更换条件。苹果给不给你打钱,就看在7月27日前你能不能收到苹果的邮件啦。

苹果因蝶式键盘无响应故障迎来第二轮集体诉讼

本周,苹果因蝶式键盘无响应故障迎来了第二轮集体诉讼,至少三名具名被告在北加州地区法院向苹果提起了集体诉讼,认为苹果在已经知情产品缺陷的情况下销售、继续销售产品。继苹果「电池门」后,「蝶式键盘」难道要重蹈覆辙?

下一代A12芯片已开始量产,为新iPhone做准备

知情人士称,新一代处理器很可能命名为A12,将使用7纳米制程工艺,要比当前iPhone8、iPhoneX等苹果设备使用的10纳米芯片更小、更快、更节能。苹果和台积电不予置评。

苹果上线新网站,可删除AppleID和下载数据

苹果在欧盟国家上线了全新的「数据隐私」网站,用户可以在这里下载所有与AppleID关联的数据。用户可以下载的数据包括购买记录,应用使用历史、日历、提醒事项、照片、储存在iCloud的文档、AppleMusic和GameCenter数据以及AppleCare支持历史,甚至彻底删除AppleID。

设计师畅想全新AppleMusic

图形设计师álvaroPabesio在Behance网站上分享了自己对下一代AppleMusic的想法。他移除了播放列表、艺术家、专辑、歌曲、已下载的音乐等垂直的列表,并增加了水平的滑动条,用户可以通过滑动在不同的内容之间进行查看。此外,他还为用户界面进行了重新设计,增加了群组播放列表功能等。

科技圈大事件

GooglePlay商店中发现数千个受感染的Android应用,需返回应用商店卸载

安全公司Avast在GooglePlay商店发现了至少26个应用程序,其中包括广告软件在受到危害的系统上强制展示广告,使用特殊行为使用户难以消除感染。此类应用通常会在GooglePlay中评分很低,但是也有5星评价,Avast说这些评论有可能造假。

Google已将所有这些应用从GooglePlay商店中删除,想要卸载这些应用的用户需要从GooglePlay商店执行此操作,因为主屏幕上的图标已经消失。

工信部:WiFi万能钥匙和WiFi钥匙等涉嫌危害用户信息

工信部发布2018第一季度工作情况报告,发现部分移动应用程序存在未经明示收集使用用户信息、未履行安全保护义务等问题,其中下载次数高达19亿次的《WiFi万能钥匙》和《WiFi钥匙》也涉嫌入侵他人WiFi网络和窃取用户个人信息。你们还用这类app吗?

饿了么、美团将上线「匿名购买」

饿了么和美团昨日宣布,最快从6月起,将对买家姓名、电话等信息进行自动屏蔽处理,用户无需手动选择就能「匿名购买」。骑手和商家都将只能通过虚拟电话号码和app内置聊天工具联系用户,订单完成后,虚拟号码和聊天页面永久失效,骑手和商家端保存的用户地址信息也将被隐藏。

少女诗人小冰2.0版公测

小冰的诗歌创作模型已经开始2.0版公测了。只需上传一张图片,给几个关键词,微软小冰就能在10秒内替你创作诗歌初稿。而且微软小冰已宣布放弃她创作的诗歌版权,所以你可以任意发表最终的作品,甚至不必提及她参与了你的创作。

扫描下方二维码关注AppSo(微信公众号AppSo),回复关键词「小冰」获取体验地址,让少女诗人小冰为你作诗。

港媒:滴滴最快下半年港股上市

据香港经济日报报道,滴滴出行最快下半年启动上市,已初步决定落户香港,并考虑不同上市架构,不排除以同股不同权形式上市。报道还提及,滴滴正积极寻觅主要投资者,询价相当约估值约550亿美元,预计滴滴最终上市时市值或能达700亿至800亿美元。滴滴尚未回应。

称哔哩哔哩擅播《中国有嘻哈》,爱奇艺起诉索赔100万

据海淀法院网消息,爱奇艺独家信息网络传播权的节目《中国有嘻哈》被「哔哩哔哩」未经授权擅自播出,爱奇艺以侵害作品信息网络传播权纠纷为由将「哔哩哔哩」运营者上海宽娱数码科技有限公司诉至法院,要求立即停止侵权并赔偿损失及合理费用100万元。法院已受理此案,正在进一步审理中。

微信正研发全语音交互界面,可解决安全驾驶问题

腾讯董事长兼CEO马化腾在昨日的「腾讯云未来峰会」上透露,目前微信团队正在研发一套车载全语音交互系统界面,希望在车载模式下可以智能解决安全问题。如果研发成功,未来将可以搭载到车联网系统中。

新手机情报

5月31日见!小米官方确认:MIUI10与小米8一同发布

昨日,MIUI官微发布消息:「我是#MIUI10#,我为快过闪电而奋斗。小米年度旗舰发布会,5月31日见。」确认,MIUI10将与小米8一同于5月31日正式发布。从海报上来看,MIUI10将继续在「快体验」方面下功夫,而且将超越MIUI9。

HTCU12+发布:没有刘海,顶配5420元

HTCU12+于昨日正式发布,拍照方面新增「电影级自动变焦」模式和「音频变焦」功能。搭载高通骁龙845处理器,3500mAh电池,运行基于Android8.0的HTCSense系统,后置指纹识别,并支持面部识别。

外观方面,HTCU12+搭载了一块标准的6英寸18:9全面屏。没有用上「刘海屏」,在今年的新机群中应该算是少数。

游戏圈大事件

任天堂上架「用户的第二台Switch」

昨日,任天堂宣布推出NintendoSwitch2ndSet套装,旨在为已经拥有Switch游戏机的用户为家庭成员增设第二台游戏机,该套装目前已上架任天堂官方线上商城。作为玩家的「第二台」设备,它包含一台Switch主机、一对Joy-Con手柄以及Joy-Con的手腕腕带。并不包含正常套装中的扩展底座、Joy-Con扩展手柄、电源适配器以及HDMI传输线。售价:约1448元人民币。

索尼联合B站推定制版PS4主机

Bilibili宣布与索尼达成合作,旗下BML将和PS合作推出一款B站主题的PS4限量主机,主机本体上印有2233娘矢量图案。发售时间和价格暂未公布。官方表示,玩家需要持续关注BML的后续周年庆活动才有机会获得购买名额。

《战地5》首部实机预告!10月发售

EA于今天凌晨4点召开了《战地5》发布会,并公布首部实机预告片。本作的单人模式将讲述不为人知的战争故事,多人模式增加了多个如同电影大片般的角色动画,玩家叱诧战场,还得提防背后敌人的袭击,震撼的画质加上角色动画,堪比电影大片。本作将在10月19日发售。

鲜面连线

Epica2Pro

iOS|¥12→0

全特性史诗趣味相机第二弹。一秒变身变身魔法师、圣骑士、肌肉男,或是萌萌的小兔子,分分钟让你的照片变有趣。

ScheduleMe

iOS|¥18→0

可以帮助你快速安排每日任务,配置灵活,功能强大,是管理个人时间的绝佳助手。这款应用经过了反复迭代,精心设计,使用起来非常顺手,各种日常事务,都可以通过它来快速记录和安排。

圆视界

iOS|¥6→3

一款能将所有照片变成圆形视觉的应用。换个视界看世界,还可以更美,来探索你发现美的眼睛吧!

Breathein

iOS|¥18→0

一个清新可爱的冥想应用。设定好定时器后,通过深呼吸和憋气帮你进行有规律的呼吸训练,找回平静自我,放慢生活步调和调节紧张与压力。有5种主题画面和优美音乐,在训练过程画面图案还有动效,非常精美治愈。

扫描下方二维码关注公众号AppSo,回复「限免」,获取所有免费/特价app下载地址,手快有,手慢无。

壁纸精选

每天,AppSo都会为你悉心精选一张手机壁纸,让你的手机与众不同。

图片来自:@jim\_gresham

车联网数据分析之用户出行数据分析

原创2024-03-2823:42·数据探索学习营一、概述随着车联网的发展,用户在行车过程中会产生大量的数据,以笔者的日常工作为例:之前的数据采样频率为1min一次(不能满足驾驶行为分析需求),后来改成部分数据为采集1s一次、部分数据为采集10s一次(10s打包上传一次),如果有ADAS方面的分析需求,对于采样频率要求更高,如此多的数据,如果利用起来,可以挖掘出来很大的价值,目前各个车企都通过Tbox对车辆产生的数据上传到了云端,便于后续的一些分析挖掘,应用较多的主要还是用户的驾驶行为分析(APP端出行数据展示、驾驶行为评分、积分商城、UBI保险等)、故障诊断(DTC统计分析、远程诊断等)、用户画像构建(智能营销、智能推荐等)等,但真正落地这块,对于传统车企还属于摸索阶段,落地的应用还是比较少,目前做的更多的还是偏向于数据中台的搭建,本文笔者还是主要对用户的出行数据进行分析,也是属于比较简单的分析,对于更多的数据挖掘分析,还需要进行深入学习。

车联网数据分析应用场景

二、数据分析笔者使用的车联网数据集来自于一辆联网的SUV的真实出行数据(已经做了部分解析处理),数据采集频率为1min。

其中:部分数据已经脱敏、最原始的数据已经被技术人员做了行程划分(笔者获取的为处理后的数据)、数据格式为CSV、时间跨度(2018年8月6日~~2020年8月18日)

所用的数据字段:开始时间戳、结束时间戳、里程、油耗、开始经纬度、结束经纬度

本文主要分析用户的出行情况,对于用户的驾驶行为数据(如:速度、加速度、蓄电池电压等)暂时没有使用。

使用工具:Python语言

2.1、数据导入及清洗相关库导入

首先我们导入数据分析所用到的相关包(报错的按照提醒安装相关库,笔者默认大家会使用Pyhon及相关库的安装),如下:

#导入相关的包importnumpyasnpimportpandasaspdfrommatplotlibimportpyplotaspltimportseabornassns#引入地图相关库frompyechartsimportMap#不显示警告信息importwarningswarnings.filterwarnings("ignore")导入数据并查看

#读取数据(其中usecols表示选取某几列)df=pd.read_excel(r"E:\code\data_analyze\1_excerise_example\vehicle_data ips2.xls",usecols=[1,2,3,4,5,6,7,8])df.head()结果如下:

首先因为车联网中肯定不会出现重复数据(即每一行数据不能重复),所以我们先删除重复的数据(哈哈!!笔者是在分析途中发现异常的,所以后来放前面了):

#首先删除重复的值,保证不出现相同时间戳的数据(其中inplace为True表示)df.drop_duplicates(inplace=True)查看缺失值

#查看数据的基本情况df.info()如下:

可以看到,数据还有缺失,可以通过如下代码查看缺失数量:

#查看缺失值df.isnull().sum()缺失值填充

我们可以看到,油耗和起始经纬度有数据缺失,需要对缺失值进行填充

对于油耗值的填充,笔者使用的策略是:油耗填充时判断当前提供的里程是否为0,若为0,则油耗赋值为0,否则根据提供的平均油耗填充;

对于经纬度值的填充,笔者采用的策略是与前一个经纬度一样的值进行填充(即:默认位置不发生变化)

处理如下:

#异常值处理defdrop_function(x,y):ifnp.isnan(y)andx==0:return0elifnp.isnan(y)andx!=0:returnx*10/100else:returnydf["data_fuelconsume"]=df.apply(lambdax:drop_function(x.data_odograph,x.data_fuelconsume),axis=1)#对于经纬度值的填充,由于缺失值较少,笔者使用的是向前填充的方式(即:默认位置变动较小)df.fillna(method='ffill',inplace=True)时间戳转换

主要是将时间戳转换成日期形式的数据,如下:

#数据预处理#首先针对时间戳进行处理(时间戳转换成日期)importdatetimedf["start_datetime"]=df["data_starttime"].apply(lambdax:datetime.datetime.fromtimestamp(x/1000))df["end_datetime"]=df["data_endtime"].apply(lambdax:datetime.datetime.fromtimestamp(x/1000))#一段里程的行驶时间df["delta_time"]=df.apply(lambdax:x["end_datetime"]-x["start_datetime"],axis=1)获取对应的年、月、日及星期

#对应的年月日及星期df["start_trip_year"]=df["start_datetime"].apply(lambdax:x.year)df["start_trip_month"]=df["start_datetime"].apply(lambdax:x.month)df["start_trip_day"]=df["start_datetime"].apply(lambdax:x.day)df["start_trip_weekday"]=df["start_datetime"].apply(lambdax:x.isoweekday())df["start_date"]=df["start_datetime"].apply(lambdax:x.strftime("%Y-%m-%d"))df["end_trip_year"]=df["end_datetime"].apply(lambdax:x.year)df["end_trip_month"]=df["end_datetime"].apply(lambdax:x.month)df["end_trip_day"]=df["end_datetime"].apply(lambdax:x.day)df["end_trip_weekday"]=df["end_datetime"].apply(lambdax:x.isoweekday())df["end_date"]=df["end_datetime"].apply(lambdax:x.strftime("%Y-%m-%d"))经纬度转换

由于我们获取的数据是经纬度,需要将经纬度转换成地点,笔者使用的百度地图提供的逆编码的API接口(链接:百度地图开发者逆地理编码),同时建议认证成个人开发者,每天提供30万的访问次数(否则只有6000的访问次数),基本能满足个人需求,平时做一些个人开发需求也可以使用。

转换的具体代码如下:

#使用百度地图API接口确定用户车辆所在位置importrequestsimportjsondefget_location(latitude,longitude):url="http://api.map.baidu.com/reverse_geocoding/v3/?ak=DyWdPN8lPg1SATBBRBlZXfrLrmmLb9vhoutput=jsoncoordtype=wgs84lllocation={},{}".format(latitude,longitude)headers={"User-Agent":"Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/85.0.4183.83Safari/537.36"}request_data=requests.get(url,headers=headers).textdata=json.loads(request_data)print(data)ifdata["result"]:location=data["result"]["formatted_address"]ifnotlocation:location="暂时查询不到"province=data["result"]["addressComponent"]["province"]ifnotprovince:location="暂时查询不到"city=data["result"]["addressComponent"]["city"]ifnotcity:location="暂时查询不到"district=data["result"]["addressComponent"]["district"]ifnotdistrict:location="暂时查询不到"returnlocation+";"+province+";"+city+";"+district#获取经纬度对应的地理位置df["start_location_info"]=df.apply(lambdax:get_location(x.data_startlatitude,x.data_startlongitude),axis=1)df["end_location_info"]=df.apply(lambdax:get_location(x.data_endlatitude,x.data_endlongitude),axis=1)#先保存数据(避免后续每次都进行调用接口)df.to_csv("new_vehicle_data.csv",encoding='utf_8_sig')对于这个也比较简单,通过python提供的requests库进行请求,然后对返回的json数据提取相关需要的数据,笔者主要使用了当前所在的路段、所在省份、所在城市、所在区县四种数据(笔者将其先放在一起,避免每次请一次,或许直接进行分列操作即可)。运行的比较慢,如果请求多的话可以使用多进程或者多线程进行请求(不知道速度过快会不会被限制,笔记没试过,感兴趣的可以看看!)

地理位置分开

之前我们将数据放在一个字符串里,现在需要对其进行分开,分别获取街道、省、市、区县,如下:

#开始位置的信息df["start_location"]=df.apply(lambdax:x["start_location_info"].split(';')[0],axis=1)df["start_location_province"]=df.apply(lambdax:x["start_location_info"].split(';')[1],axis=1)df["start_location_city"]=df.apply(lambdax:x["start_location_info"].split(';')[2],axis=1)df["start_location_district"]=df.apply(lambdax:x["start_location_info"].split(';')[3],axis=1)#结束位置的信息df["end_location"]=df.apply(lambdax:x["end_location_info"].split(';')[0],axis=1)df["end_location_province"]=df.apply(lambdax:x["end_location_info"].split(';')[1],axis=1)df["end_location_city"]=df.apply(lambdax:x["end_location_info"].split(';')[2],axis=1)df["end_location_district"]=df.apply(lambdax:x["end_location_info"].split(';')[3],axis=1)最后按照时间对数据进行排序(时间从小到大):

#按时间排序df=df.sort_values("start_datetime").reset_index()#再次保存一次df.to_csv("new_data.csv",encoding='utf_8_sig')df.head(2)结果如下:

异常数据处理

#去掉前两列df_new=df[list(df.columns)[2:]]#删除里程为0并且起始位置没变化的值df_new=df_new.drop(df_new[(df.data_odograph==0.0)(df.start_location==df.end_location)].index)#删除起始时间大于结束时间的值df_new=df_new.drop(df_new[df_new["start_datetime"]>df_new["end_datetime"]].index)df_new.head()结果如下:

这一节我们对数据进行了清洗转换,其实我们也可以加入其他的一些特征项:如季度数据(分析用户季度出行情况)、通过天气接口获取天气信息(分析用户出行和天气是否有关、各个天气情况下出行的天数、后续驾驶行为分析加入天气这一特征等)、根据地图显示筛选是否在高速上行驶等,笔者也是做个引子,有兴趣的可以加入这些内容,本文暂时以上面处理好的数据进行分析。

2.2、数据分析及可视化这部分我们开始分析用户的出行情况,主要是分析用户的出行里程、油耗、出行的天数分布、每日早日出行时间、出行地点等维度进行分析。

出行天数分析

首先我们来分析用户的年、月出行天数分布情况,如下:

#获取出行的日期trip_date=df_new["start_date"].unique()df_trip_date=pd.DataFrame(trip_date,columns=['trip_date'])df_trip_date["year"]=df_trip_date.apply(lambdax:x["trip_date"].split("-")[0],axis=1)df_trip_date["month"]=df_trip_date.apply(lambdax:x["trip_date"].split("-")[0]+"/"+x["trip_date"].split("-")[1],axis=1)#用户每年出行天数分析trip_year=df_trip_date['year'].value_counts()print(trip_year)sns.barplot(trip_year.index,trip_year.values)plt.show()结果如下:

可以看到,用户在2019年出行了140天,出行率达不到50%,对于18和20年,由于数据仅有小半年和大半年的数据,所以出行次数较少,但是可以加起来大致看到用户每年的出行天数占比不到50%。

对于月度出行分析,代码实现如下:

#用户从购车至今每月的出行天数分布sns.set(style="darkgrid")plt.figure(figsize=(20,10))data=df_trip_date.groupby("month").count()["trip_date"]sns.lineplot(data.index,data.values,markers=True)plt.xlabel("trip_month",fontsize=14)plt.ylabel("trip_num",fontsize=14)plt.xticks(rotation=30)plt.grid(color='r',linestyle='--',linewidth=0.05)plt.show()#每月平均出行天数分析print("每月平均出行天数为:",data.mean())结果如下:

可以看出每月平均出行为11.6天,对于2020年来说,可以看出2020年1、2月份出行次数突然减少,很明显是因为新冠病毒疫情的发生导致基本居家隔离,后续随着疫情不断被控制,用户出行次数不断增加,其中六月份出行次数最多,后续我们可以分析其在该段时间去往的地方,可以看看是不是出去旅游或者走亲访友(这些都是笔者的猜测,哈哈!!!),对于2018年来说,用户在11月份用车需求突然下降,可以分析是不是因为天气原因出门较少或者因为车辆保养或者其他原因导致的,这些都是可以进行挖掘探索的点。

笔者在此部分主要是分析了用户年度和月度出行的情况,当然你也可以分季度、分星期的分析用户出行的天数(这个笔者在后面进行了分析)。

出行里程、油耗分析

此部分主要分析用户每天的出行里程情况,后续可以将此特征作为用户画像的特征进行分析(比如根据用户的出行里程分析用户是否是固定上班族、是否为网约车司机、是否喜欢周末自驾出行、假期是否会长途驾驶回老家等等类似的),首先我们先分析用户的每日出行里程数,代码实现如下:

#用户每日行驶里程分布情况data_fule_odo=df_new.groupby(["start_date","start_trip_weekday"]).sum()plt.figure(figsize=(30,10))odo_data=data_fule_odo["data_odograph"]sns.barplot(odo_data.index,odo_data.values)plt.xlabel("trip_month",fontsize=14)plt.ylabel("trip_num",fontsize=14)plt.xticks(rotation=30)plt.grid(color='r',linestyle='--',linewidth=0.05)plt.show()print("最长行驶里程为:",odo_data.max())print("最段驶里程为:",odo_data.min())最终结果如下:

对于X轴坐标表示的是时间序列,笔者在此处暂未对时间轴进行处理,所以导致看起来比较密集(罪过罪过!!!),可以看出,有几日的里程值偏高,后续我们可以根据用户的开始和结束的经纬度信息来判断这些比较大的数据是不是因为用户长途出行导致的,还是说因为我们在数据采集或者上传过程中出现异常导致的,从而为我们改善解决问题提供支持。

对于油耗的分析

对于油耗的分析,我们先分析用户的年度使用情况,如下:

data_fule=data_fule_odo.reset_index()data_fule["year"]=data_fule.apply(lambdax:x["start_date"].split("-")[0],axis=1)data_fule["month"]=data_fule.apply(lambdax:x["start_date"].split("-")[0]+"/"+x["start_date"].split("-")[1],axis=1)#用户每年出行里程和总的耗油量data_fule.groupby("year").sum()[["data_odograph","data_fuelconsume"]]最终结果为:

可以看到,用户在2019年全年行驶里程为16908.09km,总耗油为1401.1L,这些数据可以作为用户年度行车报告里的一部分,每年底推送给用户(类似于支付宝账单的形式),让用户了解其一年的驾车状况,同时也可以对所有用户进行排名展示,提升用户使用主机厂APP的使用频率,从而在APP中加入更多的运营产品。

接下来我们分析用户每月的油耗及里程的分布情况,代码如下:

#用户每月出行里程、总的油耗量plt.figure(figsize=(16,8))plt.subplot(2,1,1)month_odo=data_fule.groupby("month").sum()["data_odograph"]sns.barplot(month_odo.index,month_odo.values)plt.xlabel("trip_month",fontsize=14)plt.ylabel("trip_odograph",fontsize=14)plt.xticks(rotation=30)plt.grid(color='r',linestyle='--',linewidth=0.05)plt.subplot(2,1,2)month_odo=data_fule.groupby("month").sum()["data_fuelconsume"]sns.barplot(month_odo.index,month_odo.values)plt.xlabel("trip_month",fontsize=14)plt.ylabel("trip_fuel",fontsize=14)plt.xticks(rotation=30)plt.grid(color='r',linestyle='--',linewidth=0.05)plt.show()结果如下:

可以看到用户在2019年三月份出行里程最多,同时对于之前出行天数最多的为2020年6月份,发现虽然2020年6月份出行天数最多,但是其行驶里程较少,可以初步分析其主要是在自己本地出行,长途出行较少,而2019年3月份其更多的可能是长途出行,同样你可以结合出行地点进行自己想法的验证。

之前我们分析了用户按照年、月出行天数的分析,接下来我们分析用户的星期出行情况,代码如下:

#按星期分析用户出行天数情况(同时按照年分开)。注意:unstack()的使用!!!#print(data_fule.groupby(["start_trip_weekday","year"]).size())data_fule.groupby(["start_trip_weekday","year"]).size().unstack().plot.line(figsize=(10,5))plt.xticks(rotation=0)plt.show()结果为:

可以看出用户在2018年时候每到周末的时候出行次数会较少,而2020年时候,每到周末,用户的出行天数就增加,是不是可以认为用户偏爱周末出行或者周末聚餐什么的(大家针对这块有什么想法呢?),笔者也是自己的一个想法,更多其实需要结合地理位置来进行判断验证。

其实对于出行时间的分析,还可以有很多方面,笔者也是给大家提个引子,大家可以在此基础之上实现自己的一些对数据挖掘的想法。

出行地点分析

首先我们分析用户出行的城市,如下:

city_trip_days=df_new.groupby(["start_date","end_location_city"]).size().unstack().count(axis=0)[1:]结果如下:

然后我们使用Pyecharts来绘制地图来在地图上进行可视化展示,如:

frompyechartsimportGeo#只需要在顶部声明CurrentConfig.ONLINE_HOST即可frompyecharts.globalsimportCurrentConfig,OnlineHostType#OnlineHostType.NOTEBOOK_HOST默认值为http://localhost:8888/nbextensions/assets/CurrentConfig.ONLINE_HOST=OnlineHostType.NOTEBOOK_HOSTkeys=city_trip_days.indexvalues=city_trip_days.values#print(values)geo=Geo("用户全国出行热力图","数据来源:Tbox采集的车辆数据",title_color="#fff",title_pos="left",width=1200,height=600,background_color='#404a59')geo.add("用户出行热力图",keys,values,visual_range=[0,5],type='effectScatter',visual_text_color="#fff",symbol_size=15,is_visualmap=True,is_roam=True)#type有scatter,effectScatter,heatmap三种模式可选,可根据自己的需求选择对应的图表模式#geo.render(path="用户全国出行热力图.html")geo.render_notebook()最终呈现的结果如下:

可以看到用户的出行还是集中在东北及内蒙古东北部地区,运行最多的当属用户的所在地哈尔滨市。

其实对于用户出行点的分析,可以应用的场景还是挺多的,比如:和加油站合作根据用户的油量及地理位置信息及用户的日常加油偏好(这块需要根据用户的日常停留点判断用户偏爱加哪家的油)来为用户推荐比较优惠合适的加油站,通过车机导航直接推给用户,还有洗车也可以实现类似的(主要有优惠且服务好,能提高品牌的用户满意度),还有就是挖掘用户的家庭地理位置、公司位置等,为主机厂构建完整的用户画像,为后续的精准营销、个性化推荐服务提供基础数据。

最后我们来分析分析用户的每天驾驶时长,如下:

#出行时长分布统计ff=pd.DataFrame(df_new.groupby("start_date").sum()["delta_time_second"])ff["hour"]=ff.apply(lambdax:float('%.1f'%float(x.delta_time_second/60)),axis=1)arr_list=list(range(21))x_value=ff["hour"].values.reshape(1,len(ff["hour"])).tolist()[0]all_data=pd.cut(x_value,arr_list,labels=["1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20"])new_data=pd.DataFrame(pd.value_counts(all_data),columns=["num"]).reset_index().sort_values(by="index")plt.figure(figsize=(10,6))sns.barplot(x=new_data["index"].values,y=new_data["num"].values)plt.show()#all_data结果如下:

可以看到用户出行最多的还是1~2小时,同时我们也发现了一些时间比较大的数据,我们可以分析是不是真的是用户长途出行导致的还是因为我们的数据采集或者处理有问题导致,就又回到了我们分析用户的停留点情况。

本文暂时先到这,笔者写的比较粗略简单,更多的也是给大家提供思路,其实还有挺多内容的,比如:分析用户的每日最早出行时间段(如6~7、7~8、8~9),给大家提供个代码,如下:pd.DataFrame(df_new.groupby("start_date").min()["start_datetime"]),最晚驾驶时间、高速行驶里程情况等等,其都可以为我们构建用户画像、用户的驾驶行为分析模型搭建提供基础数据,保证又更多的特征。

三、总结本文主要是大致的给大家做了个介绍,给大家提供一些思路,也针对不同的结果谈了下一些应用场景,其实挺多内容值得我们深入研究的,这个才几个字段,后续我们加入更多的一些数据字段,可以发现很多可以帮助我们优化产品、提高效率、较少成本的方法,对于车联网数据分析这块,笔者也算是个新人,处于摸索阶段,欢迎大家互相交流想法和心得!

【WINDRISES IOT PROMOTION】尊享直接对接老板

电话+V: 159999-78052

专注于为物联网运营推广及产品打包交易配套流程服务方案。为企业及个人客户提供高性价比的共享解决方案,致力于首个物联网行业的平台搭建与合作

车联网任务卸载数据集
发布人:mingliuzhongn77 发布时间:2024-10-08