From 68d834f0e36c6f900b57f6b91bb3a156257b9aa2 Mon Sep 17 00:00:00 2001 From: Terji Petersen Date: Thu, 20 Apr 2023 15:38:49 +0100 Subject: [PATCH 1/2] CLN/depr: dt.to_pydatetime --- pandas/core/indexes/accessors.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/pandas/core/indexes/accessors.py b/pandas/core/indexes/accessors.py index 4f529b71c867f..2c03ac03d02c1 100644 --- a/pandas/core/indexes/accessors.py +++ b/pandas/core/indexes/accessors.py @@ -304,6 +304,12 @@ def to_pydatetime(self) -> np.ndarray: """ Return the data as an array of :class:`datetime.datetime` objects. + .. deprecated:: 2.1.0 + + The current behavior of dt.to_pydatetime is deprecated. + In a future version this will return a Series containing python + datetime objects instead of a ndarray. + Timezone information is retained if present. .. warning:: @@ -328,19 +334,19 @@ def to_pydatetime(self) -> np.ndarray: 1 2018-03-11 dtype: datetime64[ns] - >>> s.dt.to_pydatetime() + >>> s.dt.to_pydatetime() # doctest: +SKIP array([datetime.datetime(2018, 3, 10, 0, 0), datetime.datetime(2018, 3, 11, 0, 0)], dtype=object) pandas' nanosecond precision is truncated to microseconds. >>> s = pd.Series(pd.date_range('20180310', periods=2, freq='ns')) - >>> s + >>> s # doctest: +SKIP 0 2018-03-10 00:00:00.000000000 1 2018-03-10 00:00:00.000000001 dtype: datetime64[ns] - >>> s.dt.to_pydatetime() + >>> s.dt.to_pydatetime() # doctest: +SKIP array([datetime.datetime(2018, 3, 10, 0, 0), datetime.datetime(2018, 3, 10, 0, 0)], dtype=object) """ From 17c431e537dc408e45d7221f7a61a5922219df69 Mon Sep 17 00:00:00 2001 From: Terji Petersen Date: Fri, 21 Apr 2023 20:02:53 +0100 Subject: [PATCH 2/2] update for comments --- pandas/core/indexes/accessors.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pandas/core/indexes/accessors.py b/pandas/core/indexes/accessors.py index 2c03ac03d02c1..f86728ad8b686 100644 --- a/pandas/core/indexes/accessors.py +++ b/pandas/core/indexes/accessors.py @@ -334,19 +334,19 @@ def to_pydatetime(self) -> np.ndarray: 1 2018-03-11 dtype: datetime64[ns] - >>> s.dt.to_pydatetime() # doctest: +SKIP + >>> s.dt.to_pydatetime() array([datetime.datetime(2018, 3, 10, 0, 0), datetime.datetime(2018, 3, 11, 0, 0)], dtype=object) pandas' nanosecond precision is truncated to microseconds. >>> s = pd.Series(pd.date_range('20180310', periods=2, freq='ns')) - >>> s # doctest: +SKIP + >>> s 0 2018-03-10 00:00:00.000000000 1 2018-03-10 00:00:00.000000001 dtype: datetime64[ns] - >>> s.dt.to_pydatetime() # doctest: +SKIP + >>> s.dt.to_pydatetime() array([datetime.datetime(2018, 3, 10, 0, 0), datetime.datetime(2018, 3, 10, 0, 0)], dtype=object) """