问题描述
我对此有些陌生,正在使用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模型运行该对象以预测事件何时会发生会有问题吗?
谢谢!
1楼
您应该使用 ,而不是标准库的datetime
data['timeobject'] = pd.to_datetime(data['start_time'], format='%h:%m:%s')
2楼
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框架一起很好地工作。