https://github.com/datawhalechina/team-learning-data-mining/tree/master/wisdomOcean
1.tqdm介绍及常用方法
tqdm库的简介
显示循环的进度条的库。taqadum)在阿拉伯语中的意思是进展。tqdm可以在长循环中添加一个进度提示信息,用户只需要 封装任意的迭代器 tqdm(iterator),是一个快速、扩展性强的进度条工具库。
tqdm库的安装
pip install tqdm
tqdm库的使用方法
import time
from tqdm import *
for i in tqdm(range(1000)):
time.sleep(.01)
2. 轨迹数据的处理
渔船ID:渔船的唯一识别,结果文件以此ID为标识
x:渔船在平面坐标系下的x轴坐标
y:渔船在平面坐标系下的y轴坐标
速度:渔船当前时刻的航速,单位节
方向:渔船当前时刻的航首向,单位度
time:数据上报时刻,单位月日 时:分
type:渔船label,作业类型
查看数据
data_train.head(3).append(data_train.tail(3))
查看缺失值
print(f'There are {data_train.isnull().any().sum()} columns in train dataset with missing values.')
There are 0 columns in train dataset with missing values.
-
df.isnull():返回了布尔值,该处为缺失值,返回True,该处不为缺失值,则返回False
-
df.isnull().any():判断哪些列包含缺失值,该列存在缺失值则返回True,反之False
-
df.isnull().sum():将列中为空的个数统计出来
查看训练集测试集中特征属性只有一值的特征
one_value_fea = [col for col in data_train.columns if data_train[col].nunique() <= 1]
print(f'There are {len(one_value_fea)} columns in train dataset with one unique value.')
3. 三类渔船速度和方向的数据分布
对某一特征进行数据统计
# 对某一特征进行数据统计
def get_data_cummulation(type=None,path=None,kind=None,columns=None):
"""
:param type:"ciwang","weiwang" or "tuowang"
:param path:存放数据路径
:param kind: '速度' or '方向'
:param columns:与kind对应,'speed' or 'direction'
"""
data_dict = dict()
with open(path + type+".pkl","rb") as file:
data_list = pickle.load(file) #加载某一类渔船的数据
for datax in tqdm(data_list):
data = datax[kind].values
for speed in data:
data_dict.setdefault(speed,0) # 把spped的数据放到一个字典里面去
data_dict[speed] += 1 # 对,每一个speed数量的统计;有一个速度为 0.25的 就+1 统计出同一类型的船 有多少个速度为 0.25的
data_dict = dict(sorted(data_dict.items(),key=lambda x:x[0],reverse=False)) # 将字典排序
data_df = pd.DataFrame.from_dict(data_dict,columns=[columns],orient="index") # columns对应传参进来的 speed 和 direction
return data_df