BUG/API: timedelta64 series should operate directly with np.timedelta64/pd.offsets · Issue #4532 · pandas-dev/pandas (original) (raw)
Related #4134 and:
In [81]: df = DataFrame(dict(time = [Timestamp('20130101 9:01'),Timestamp('20130101 9:02')]))
This is buggy
In [82]: df.time + np.timedelta64(1,'ms')
Out[82]:
0 2013-01-01 09:01:00.000000001
1 2013-01-01 09:02:00.000000001
Name: time, dtype: datetime64[ns]
In [84]: df.time + np.timedelta64(1,'s')
Out[84]:
0 2013-01-01 09:01:00.000000001
1 2013-01-01 09:02:00.000000001
Name: time, dtype: datetime64[ns]
Doesn't work
In [83]: df.time + pd.offsets.Milli(5)
ValueError: cannot operate on a series with out a rhs of a series/ndarray of type datetime64[ns] or a timedelta
But this is ok
In [86]: df.time.apply(lambda x: x + pd.offsets.Milli(5))
Out[86]:
0 2013-01-01 09:01:00.005000
1 2013-01-01 09:02:00.005000
Name: time, dtype: datetime64[ns]
This is ok
In [85]: df.time + timedelta(seconds=1)
Out[85]:
0 2013-01-01 09:01:01
1 2013-01-01 09:02:01
Name: time, dtype: datetime64[ns]