我看过几个问题,例如
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]')