博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
机器学习入门-数值特征-时间特征处理
阅读量:6920 次
发布时间:2019-06-27

本文共 2334 字,大约阅读时间需要 7 分钟。

我们可以将一连串的时间特征进行拆分,比如:2015-03-08 10:30:00.360000+00:00, 我们可以将其转换为日期类型,然后从里面提取年,月,日等时间信息

对于一些hour,month等信息,我们也可以使用pd.cut将hour信息按照时刻转换为离散数据,如morning,afternonn等等

代码:

第一步:载入数据

第二步:将数据转换为DataFrame格式

第三步:使用pd.Timestamp将字符串格式转换为时间格式

第四步:使用.apply提取时间格式中的各个属性特征

第五步:提取与时刻相关的属性

第六步:使用pd.cut对hour特征进行切分,转换为离散特征

第七步:使用LabelEncoder对离散数据进行数字编码

import pandas as pd# 第一步:构造DataFrame数据time_stamps = ['2015-03-08 10:30:00.360000+00:00', '2017-07-13 15:45:05.755000-07:00',               '2012-01-20 22:30:00.254000+05:30', '2016-12-25 00:30:00.000000+10:00']# 第二步: 将time_stamps转换为DataFrame格式time_pd = pd.DataFrame(time_stamps, columns=['Times'])# 第三步: 使用pd.Timestamp 将字符串类型转换为日期格式time_pd['stamp'] = [pd.Timestamp(time) for time in time_pd['Times'].values]# print(time_pd[['stamp', 'Times']])

                                    字符串时间日期化,从外表看两者并没有区别

# 第四步:使用.apply对每一个数据提取属性, lambda表示输入是x,返回是x.yeartime_pd['year'] = time_pd['stamp'].apply(lambda x: x.year)time_pd['month'] = time_pd['stamp'].apply(lambda x: x.month)time_pd['day'] = time_pd['stamp'].apply(lambda x: x.day)time_pd['DayOfWeek'] = time_pd['stamp'].apply(lambda d: d.dayofweek)time_pd['DayName'] = time_pd['stamp'].apply(lambda d: d.weekday_name)time_pd['DayOfYear'] = time_pd['stamp'].apply(lambda d: d.dayofyear)time_pd['WeekOfYear'] = time_pd['stamp'].apply(lambda d: d.weekofyear)time_pd['Quarter'] = time_pd['stamp'].apply(lambda d: d.quarter)# 第五步: 提取与时刻有关的特征time_pd['Hour'] = time_pd['stamp'].apply(lambda d: d.hour)time_pd['Minute'] = time_pd['stamp'].apply(lambda d: d.minute)time_pd['Second'] = time_pd['stamp'].apply(lambda d: d.second)time_pd['MUsecond'] = time_pd['stamp'].apply(lambda d: d.microsecond)   #毫秒time_pd['UTC_offset'] = time_pd['stamp'].apply(lambda d: d.utcoffset())# 第六步:使用pd.cut将hour的数据进行切分,分成几个过程cut_hour = [-1, 5, 11, 16, 21, 23]cut_labels = ['last night', 'morning', 'afternoon', 'evening', 'Night']time_pd['Hour_cut'] = pd.cut(time_pd['Hour'], bins=cut_hour, labels=cut_labels)print(time_pd['Hour_cut'].head())

     hour数据转换为离散的数据格式

# 第七步:使用LabelEncoder对标签进行数值转换from sklearn.preprocessing import LabelEncoderLa = LabelEncoder()time_pd['Hour_number'] = La.fit_transform(time_pd['Hour_cut'])label_dict = {classes: number for number, classes in enumerate(La.classes_)}print(time_pd[['Hour_cut', 'Hour_number']])print(label_dict)

                  离散特征转换为数字映射

 

转载于:https://www.cnblogs.com/my-love-is-python/p/10322671.html

你可能感兴趣的文章
常用LINUX_C字符串处理函数整理
查看>>
URL 和 URI 区别?
查看>>
如何绘画状态机来描述业务的变化
查看>>
系统稳定性
查看>>
PAT 1045___未完成
查看>>
用zuul将微服务的多个swagger api文档聚合成一个文档
查看>>
ionic 提示 Error: Could not find gradle wrapper within Android SDK.
查看>>
PopupWindow下拉背景模糊地实现
查看>>
在 CakePHP 2.10.3 中,在控制器中打印已经执行过的 SQL 语句流程
查看>>
CpuIdle Extreme(CPU降温工具)官方版
查看>>
flume整合kafka,实现exactly one的数据采集
查看>>
execCommand + contenteditable 实现强大富文本编辑功能
查看>>
Hadoop源码分析HDFS ClientProtocol——create
查看>>
linux上一款功能强大的取色工具
查看>>
php多维数组去掉重复值
查看>>
Struts上路_13-OGNL对象图导航语言
查看>>
Maven 启动找不到 Launcher 的问题
查看>>
TensorFlow 官方API学习02--MNIST(上)
查看>>
Python watchdog
查看>>
网络爬虫01: Urllib2库使用代理IP
查看>>