@@ -815,8 +815,51 @@ cdef class _Timedelta(timedelta):
815
815
816
816
cpdef timedelta to_pytimedelta(_Timedelta self ):
817
817
"""
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
820
863
"""
821
864
return timedelta(microseconds = int (self .value) / 1000 )
822
865
0 commit comments