当前位置: 代码迷 >> python >> 无法在python中声明时间对象
  详细解决方案

无法在python中声明时间对象

热度:55   发布时间:2023-06-21 11:01:15.0

我对此有些陌生,正在使用python中的日期时间数据。 两个问题:

我有一个与事件关联的时间列,但是使用datetime.time将其声明为时间时遇到了困难。 我有一个时间列,其格式如下:

0       11:17:43
1       06:00:00
2       06:30:35
3       02:00:00
4       23:00:00
5       13:20:49
6       19:30:00

并试图将其声明为时间对象

data['timeobject'] = datetime.time(data['start_time'], axis = 1)

但是正在收到此错误消息:

TypeError:无法将系列转换为类“ int”

另外,我想使用这个时间对象,并使用scikit-learn分类或回归作为因变量。

我如何声明它为时间对象,通过scikit-learn模型运行该对象以预测事件何时会发生会有问题吗?

谢谢!

您应该使用 ,而不是标准库的datetime

data['timeobject'] = pd.to_datetime(data['start_time'], format='%h:%m:%s')

datetime.time不能以矢量化方式工作。 Pandas顶级可以,它接受多种格式,包括您提供的格式的字符串。 给定一个带有列'td'的数据框:

df['td'] = pd.to_timedelta(df['td'])

print(df)

0   11:17:43
1   06:00:00
2   06:30:35
3   02:00:00
4   23:00:00
5   13:20:49
6   19:30:00
Name: td, dtype: timedelta64[ns]

通过np.timedelta64 ,所得序列的下面是一个整数数组。 您应该期望它与scikit-learn框架一起很好地工作。

  相关解决方案