Task2 数据分析
任务概览
本次任务专注于探索性数据分析,在数据读取以及作图方面学习了很多东西。
数据读取
在数据读取过程中我遇到不少问题,幸好学习群里均提供了解答。
本部分的函数定义中遇到了不少知识盲区,这里简单记录一下。
-
tqdm
模块可以在Python执行循环命令时添加进度条信息,在直观展示运行过程的同时也不会影响原程序效率。详见[该文章][https://blog.csdn.net/qq_33472765/article/details/82940843]的介绍。 multiprocessing
是Python的多进程管理包。关于进程和线程,我完全不了解,有时间的话需要参考[廖雪峰老师的课程][https://www.liaoxuefeng.com/wiki/1016959663602400/1017627212385376]学习一下。pickle
模块能够实现基本的数据序列化和反序列化。序列化能够将程序运行的对象信息永久存储到文件中去,而反序列化则可以将文件中的数据解析为一个Python对象。
此外,任务中的read_all_data
是用户自己编写的模块。若要在jupyter notebook中调用它,需把对应的read_all_data.py
文件放在notebook所在的文件夹中。
数据概览
可以借助dataframe对象的shape
、columns
、info()
和describe
等方法初步了解数据框的行列数、列名、各列数据类型和各列描述统计。
通过命令data_train.isnull().any().sum()
可以计算data_train
数据集中存在缺失值的列数。
数据特性和特征分布
本部分采取了一系列可视化方案来探究三种作业类型的特征分布。通过随机选取样本绘制轨迹可以发现,存在单点异常轨迹;通过绘制x和y序列也可以发现,有船只存在两坐标同时未变的情况,这也属于异常情形。
POI点是指“Point of Interest”,中文可翻译为“兴趣点”,它是地理信息系统中的概念。POI包括四方面信息:名称、类型、经纬度、区划。