我正在尝试制作一个具有持续时间的列(小时-例如,第一个小时将是1.424小时)。我的数据是这样的。
CLOCK_START和CLOCK_STOP是对象。
我尝试了以下几种方法:
df['Duration'] = (df_nyc['Clock_Stop'] - df['Clock_Start']).astype('timedelta64[m]').astype(int)
..。但我得到以下错误:
TypeError:不支持-的操作数类型:“”Datetime.time“”和“”Datetime.time“”
有人能告诉我我做错了什么吗?如有任何帮助,我们将不胜感激:)
2条答案
按热度按时间5w9g7ksd1#
时间本身是不能加减的。您需要转换为
Timedelta
。有一个在开始时间之前的停止时间,我认为这是因为已经过了午夜。在这种情况下,将结果增加24小时:toiithl62#
你有一些类似的东西
注意,这里有一个含糊不清的问题:第3行,第二天是
03:44:00
吗?或者两天后?还是在前一天?!这就是为什么你不能简单地加或减时间。一般来说,这是正确的,而不仅仅是当t0>t1时。但您可以通过使用
timedelta
类型来消除歧义,并指定例如,如果差值为负数,则假定相隔一天,否则为同一天。例如:现在,您可以获得持续时间的其他表示形式,例如小数小时数