如何在pandas中将字符串格式的时间转换为Time?

时间:2016-11-29 09:43:16

标签: python pandas random-forest prediction

有一个数据框,其time列为stringdateint,从1到140。

enter image description here

时间是一个字符串:

0         00:05:24
1         00:05:43
2         00:06:34
3         00:06:50
4         00:06:55

我想创建一个Random Forest模型来预测课程h,但正如我们所看到的那样,日期和时间列无效,我无法在Random Forest中使用它们。我需要以某种方式将这两个列组合成一个新列,以使它们在预测中有用。

1 个答案:

答案 0 :(得分:1)

如果你想把所有东西都保留为数字特征,那么无论日期代表什么(我假设你是相对于某个零点的天数?),你可以在一天中的一小部分时间增加时间(秒/秒中的秒数。

虚拟数据:

>>> df
13:    date      time
0    23  00:05:43
1    45  00:06:34
2    67  00:06:50
3    89  00:06:55

计算时间分数,将其添加到日期以制作'时间':

>>> df['seconds'] = df.time.apply(pd.to_timedelta).apply(lambda x: x.total_seconds())
>>> df['of_day'] = df.seconds / (24*60*60)
>>> df['datetime_number'] = df.date + df.of_day
>>> df
17:    date      time  seconds    of_day  datetime_number
0    23  00:05:43    343.0  0.003970        23.003970
1    45  00:06:34    394.0  0.004560        45.004560
2    67  00:06:50    410.0  0.004745        67.004745
3    89  00:06:55    415.0  0.004803        89.004803