首页 > 解决方案 > 将浮点数转换为 datatime64[ns]

问题描述

这个问题与这里的以下一个小时和时间转换有关

我得到了以下数组,其中包含上一个问题的相应值:

a = [[7.15, 7.45, 9.30, 10.45, 13.45, 15.15, 15.45, 21.30]]

它的值是浮点数,它们代表一天中的几个小时,例如7.15等于7:15。现在我在 pandas 中使用以下公式来做一个comaprison:

df.loc[([df['orders_time'] >= a[0]) & (df['orders_time'] <= a[1]), 'new_time'] = 10

它返回一个错误说:

Invalid comparison between dtype=datetime64[ns] and float64

我试图改变a我无法运行它的值的格式。

标签: pythondatetime

解决方案


您可以转换a为时间列表。

a = [pd.to_datetime(i, format = '%H.%M').time() for i in a[0]]

然后您可以使用以下方式比较时间:

df.loc[([df['orders_time'].dt.time >= a[0]) & (df['orders_time'].dt.time <= a[1]), 'new_time'] = 10 

推荐阅读