【问题标题】:How to convert a time with string format to Time in pandas?如何将字符串格式的时间转换为熊猫中的时间?
【发布时间】:2017-04-13 05:56:35
【问题描述】:

有一个数据框,其列 timestring 和一个 dateint 从 1 到 140。

时间是一个字符串:

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 中使用它们。我需要以某种方式将这两列组合成一个新列,以使它们在预测中有用。

【问题讨论】:

  • date 在这里代表什么?
  • “日期”的意义是什么?
  • date 是一个从 1 到 140 的 int 数字,表示 date 中的 time 中出现 a(是唯一 id)的日期。
  • date 需要用于计算一些间隔。
  • 请说明“日期”与实际日期的关系。你是怎么得到这个值的?因为应该有一些映射..

标签: python pandas random-forest prediction


【解决方案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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-12-01
    • 2016-03-24
    • 2017-05-20
    • 2023-02-06
    • 2021-07-28
    • 2022-06-29
    • 2021-08-13
    • 2015-09-22
    相关资源
    最近更新 更多