我想知道如何最好地使用这种24小时时间格式作为预测特征。我的想法是将其分为一天中每个小时的24个类别。是否有简单的方法将此对象转换为Python的datetime对象,以便更容易进行分类,或者您建议如何处理这个特征?谢谢 🙂
df['Duration']0 2:501 7:252 19:003 5:254 4:455 2:25df['Duration'].dtypedtype('O')
回答:
最佳解决方案将取决于您希望从模型中获得什么。在许多情况下,将其转换为自某个纪元以来的总秒数(或分钟或小时)是有意义的。要将您的数据转换为自00:00以来的秒数,您可以使用:
from datetime import datetimet_str = "2:50"t_delta = datetime.strptime(t_str, "%H:%M") - datetime(1900, 1, 1)seconds = t_delta.total_seconds()hours = seconds/60**2print(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)# 获取总秒数seconds = t_delta.total_seconds()