我看过几个问题,例如
Calculate Pandas DataFrame Time Difference Between Two Columns in Hours and Minutes,将日期列的差异除以np.timedelta64(1,"D")的策略。

但是,当我尝试这种事情时,出现以下错误:


  TypeError:ufunc true_divide无法使用类型为dtype('O')和dtype('


基本上,我正在尝试的是:

df['time_since_last_change'] = (df['date'] - df['date_of_last_change']) / np.timedelta64(1, 'D')


两列日期/日期时间;我想知道是否或为什么将它们视为“对象”的列,或者为什么将其视为与日期时间一起使用无效?

如果有人可以帮助,将不胜感激;其他答案中提到了使用np.timedelta64除法的方法,但我不知道为什么它在这里不起作用。

最佳答案

使用.astype而不是除以np.timedelta64

df['time_since_last_change'] = (df['date'] - df['date_of_last_change']).astype('timedelta64[D]')

10-06 10:37