Skip to content

Commit 2aec3e1

Browse files
author
dcreekp
committed
DOC: make timedeltas.pyx to_pytimedelta an actual docstring
1 parent bc1fb28 commit 2aec3e1

File tree

1 file changed

+45
-2
lines changed

1 file changed

+45
-2
lines changed

pandas/_libs/tslibs/timedeltas.pyx

Lines changed: 45 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -815,8 +815,51 @@ cdef class _Timedelta(timedelta):
815815

816816
cpdef timedelta to_pytimedelta(_Timedelta self):
817817
"""
818-
Return an actual datetime.timedelta object.
819-
Note: we lose nanosecond resolution if any.
818+
Converts a Timedelta object into a python datetime.timedelta object.
819+
820+
Timedelta objects are typecast to numpy datetime64[ns] dtype,
821+
use to_pytimedelta() to convert back to object dtype.
822+
823+
Returns
824+
-------
825+
datetime.timedelta or numpy.array of datetime.timedelta
826+
827+
See Also
828+
--------
829+
to_timedelta : Convert argument to Timedelta type.
830+
831+
Notes
832+
-----
833+
Any nanosecond resolution will be lost.
834+
835+
Examples
836+
--------
837+
Converting an array of Timedeltas:
838+
839+
>>> arr = pd.to_timedelta(['1 days 06:05:01.00003', '15.5us', 'nan'])
840+
>>> arr
841+
TimedeltaIndex(['1 days 06:05:01.000030', '0 days 00:00:00.000015',
842+
NaT],
843+
dtype='timedelta64[ns]', freq=None)
844+
>>> arr.to_pytimedelta()
845+
array([datetime.timedelta(1, 21901, 30), datetime.timedelta(0, 0, 16),
846+
NaT], dtype=object)
847+
848+
Loss of nanosecond resolution:
849+
850+
>>> diff = pd.to_timedelta('1 days 06:05:01.00003')
851+
>>> diff
852+
Timedelta('1 days 06:05:01.000030')
853+
>>> diff.delta
854+
108301000030000
855+
>>> diff += np.timedelta64(22, 'ns')
856+
>>> diff.delta
857+
108301000030022
858+
>>> py_diff = diff.to_pytimedelta()
859+
>>> py_diff
860+
datetime.timedelta(1, 21901, 30)
861+
>>> pd.to_timedelta(py_diff).delta
862+
108301000030000
820863
"""
821864
return timedelta(microseconds=int(self.value) / 1000)
822865

0 commit comments

Comments
 (0)