机器学习-如何预处理数据集的时间
如果一个数据集里包含许多时间参数 (eg: 08/22/2016)。首先要处理时间参数,这里给大家介绍将数据集的时间分成工作日和周末,并将其重新定义为0和1,方便对数据集进行分析。
话不多说 直接上代码 Anaconda
import datetime
import numpy as np
data = pd.read_csv(‘文件名.csv’)
data = data.dropna(axis=0)
data[‘day’] = data[‘Date/Time’].apply(lambda x:x.split()[0].split(’/’)[1]).astype(‘int’)
data[‘month’] = data[‘Date/Time’].apply(lambda x:x.split()[0].split(’/’)[0]).astype(‘int’)
data[‘DateTime’] = data[‘Date/Time’].apply(lambda x:x.split()[0])
data[‘weekday’] = data[‘DateTime’].apply(lambda x: datetime.datetime.strptime(str(x.split(’/’)[2] + ‘-’ + x.split(’/’)[0] + ‘-’ + x.split(’/’)[1]), ‘%Y-%m-%d’).isoweekday())
data[‘isweekend’] = data[‘weekday’].apply(lambda x:x/6).astype(‘int’)
data = data.drop([‘Date/Time’, ‘DateTime’], axis=1)
target = data[‘用于预测的参数’].values.reshape(-1, 1)
data = data.drop([‘用于预测的参数’], axis=1).values
这样做的好处是将时间格式改成0和1,如果时间精确到小时分钟,则加上(以小时为例)data[‘hour’] = data[‘Date/Time’].apply(lambda x:x.split()[1].split(’:’)[0]).astype(‘int’)。