我只是想知道如何最好地使用这种24小时制作为预测功能。我的想法是将每天的每个小时都分为24类。有没有简单的方法可以将此对象转换为python datetime对象,从而使装箱更加容易,或者您将如何处理此功能?谢谢:)
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')
答案 0 :(得分:0)
您可以使用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')
您当然可以使用任何有效的格式字符串。
答案 1 :(得分:0)
您应该从一些初始时间(如第一次)开始,以秒,分钟或小时为单位计算时间。然后,您可以制作数据的x-y散点图,因为x轴(时间)现在是数字。
答案 2 :(得分:0)
最佳解决方案将取决于您希望从模型中得到什么。在许多情况下,将其转换为某个时期以来的总秒数(或分钟或小时)是有意义的。要将数据从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()