【问题标题】:How to use 24 hour time series data as a predictive feature如何使用 24 小时时间序列数据作为预测特征
【发布时间】:2019-08-29 19:09:27
【问题描述】:

我只是想知道如何最好地使用这种 24 小时时间格式作为预测功能。我的想法是将一天中的每个小时分为 24 个类别。有没有一种简单的方法可以将此对象转换为 python 日期时间对象,这会使分箱更容易,或者您建议如何处理此功能?谢谢:)

df['Duration']

0         2:50
1         7:25
2        19:00
3         5:25
4         4:45
5         2:25

df['Duration'].dtype

dtype('O')

【问题讨论】:

  • 如果您只关心小时,请尝试在冒号上拆分:df.Duration.str.split(':').str[0]

标签: python pandas machine-learning time-series data-analysis


【解决方案1】:

您可以使用 datetime 创建一个可用的 datetime 字符串

>>> from datetime import datetime
>>> x = datetime(2019, 1, 1, 0).strftime('%Y-%m-%d %H:%M:%S')
>>> # Use that for your timestring then you can reverse it nicely back into a datetime object
>>> d = datetime.strptime('2019-01-01 00:00:00', '%Y-%m-%d %H:%M:%S')

当然你可以使用任何有效的格式字符串。

【讨论】:

    【解决方案2】:

    您应该从某个初始时间(例如第一次)开始以秒、分钟或小时为单位计算时间。然后您可以制作数据的 x-y 散点图,因为 x 轴(时间)现在是数字。

    【讨论】:

      【解决方案3】:

      最佳解决方案取决于您希望从模型中获得什么。在许多情况下,将其转换为自某个时期以来的总秒数(或分钟或小时)是有意义的。要将您的数据转换为自 00:00 以来的秒数,您可以使用:

      from datetime import datetime
      
      t_str = "2:50"
      
      t_delta = datetime.strptime(t_str, "%H:%M") - datetime(1900, 1, 1)
      seconds = t_delta.total_seconds()
      hours = seconds/60**2
      
      print(seconds)
      # 10200.0
      

      使用 Python 的 datetime 类将不支持超过 23:59 的时间值。由于看起来您的数据实际上可能是一个持续时间,因此您可能希望将其表示为 Python 的 timedelta 类的实例。

      from datetime import timedelta  
      
      h, m = map(int, t_str.split(sep=':'))
      t_delta = timedelta(hours=h, minutes=m)
      
      # Get total number of seconds
      seconds = t_delta.total_seconds()
      

      【讨论】:

      • 谢谢!我现在收到错误:ValueError:时间数据“25:30”与格式“%H:%M”不匹配。我想我还有一些清洁工作要做......
      • %H 格式说明符仅接受 0 到 23 之间的小时值。根据格式的可靠性,您可以使用类似 h, m = map(int, t_str.split(sep=':')); seconds = h*60**2 + m*60 的内容。
      猜你喜欢
      • 2021-07-18
      • 2019-10-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-07
      • 1970-01-01
      • 2017-11-22
      相关资源
      最近更新 更多