pandas 获取机器学习模型的时间特征
环境
- Ubuntu 18.04
- python 3.6.9
- pandas 1.1.5
获取时间特征
df = pd.read_csv(data_path, low_memory=False)
#时间特征
df['date'] = pd.to_datetime(df['date'])
#年
df['year'] = df['date'].map(lambda x: (x.year))
#月
df['month'] = df['date'].map(lambda x: (x.month))
#日
df['day'] = df['date'].map(lambda x: (x.day))
#小时
df['hour'] = df['date'].map(lambda x: (x.hour))
#分钟
df['minute'] = df['date'].map(lambda x: (x.minute))
#星期几
df['dayofweek'] = df['date'].map(lambda x: (x.dayofweek+1))
上述的时间特征为数值型
独热编码one-hot处理时间特征
自行百度搜索one-hot
- 问题
one-hot 适用于的特征应该是分类特征,而且不同类别之间的距离是没有差别的,比如红黄蓝三种颜色,汉字等等用one-hot表示是很好的。但是对于时间序列,5点和6点跟18点之间的距离明显是不同的,所以用one-hot来度量的话,会损失非常多的信息。
将一个时间变量变成一个二维平面圆周上的点
如上所示,将一个时间变量变成一个二维平面圆周上的点。这样就能解决周期性因素。