当在pandas中减去日期列并将结果除以np.timedelta64(1,'D')时,为什么会出现错误?

时间:2016-06-16 12:24:17

标签: python datetime timedelta

我见过几个问题,比如 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的用法,但我不知道为什么它在这里不起作用。

1 个答案:

答案 0 :(得分:1)

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

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