Skip to content

Commit 2627978

Browse files
authored
REF: dispatch DatetimeBlock.to_native_types to DTA._format_native_types (#33249)
1 parent 37b14e5 commit 2627978

File tree

3 files changed

+10
-18
lines changed

3 files changed

+10
-18
lines changed

pandas/core/arrays/datetimes.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -613,8 +613,8 @@ def _format_native_types(self, na_rep="NaT", date_format=None, **kwargs):
613613
fmt = _get_format_datetime64_from_values(self, date_format)
614614

615615
return tslib.format_array_from_datetime(
616-
self.asi8, tz=self.tz, format=fmt, na_rep=na_rep
617-
)
616+
self.asi8.ravel(), tz=self.tz, format=fmt, na_rep=na_rep
617+
).reshape(self.shape)
618618

619619
# -----------------------------------------------------------------
620620
# Comparison Methods

pandas/core/internals/blocks.py

+7-15
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
import numpy as np
88

9-
from pandas._libs import NaT, Timestamp, algos as libalgos, lib, tslib, writers
9+
from pandas._libs import NaT, Timestamp, algos as libalgos, lib, writers
1010
import pandas._libs.internals as libinternals
1111
from pandas._libs.tslibs import Timedelta, conversion
1212
from pandas._libs.tslibs.timezones import tz_compare
@@ -2116,21 +2116,13 @@ def _can_hold_element(self, element: Any) -> bool:
21162116

21172117
return is_valid_nat_for_dtype(element, self.dtype)
21182118

2119-
def to_native_types(self, na_rep=None, date_format=None, quoting=None, **kwargs):
2120-
""" convert to our native types format, slicing if desired """
2121-
values = self.values
2122-
i8values = self.values.view("i8")
2123-
2124-
from pandas.io.formats.format import _get_format_datetime64_from_values
2125-
2126-
fmt = _get_format_datetime64_from_values(values, date_format)
2119+
def to_native_types(self, na_rep="NaT", date_format=None, **kwargs):
2120+
""" convert to our native types format """
2121+
dta = self.array_values()
21272122

2128-
result = tslib.format_array_from_datetime(
2129-
i8values.ravel(),
2130-
tz=getattr(self.values, "tz", None),
2131-
format=fmt,
2132-
na_rep=na_rep,
2133-
).reshape(i8values.shape)
2123+
result = dta._format_native_types(
2124+
na_rep=na_rep, date_format=date_format, **kwargs
2125+
)
21342126
return np.atleast_2d(result)
21352127

21362128
def set(self, locs, values):

pandas/io/formats/format.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1547,7 +1547,7 @@ def _is_dates_only(
15471547
values: Union[np.ndarray, DatetimeArray, Index, DatetimeIndex]
15481548
) -> bool:
15491549
# return a boolean if we are only dates (and don't have a timezone)
1550-
assert values.ndim == 1
1550+
values = values.ravel()
15511551

15521552
values = DatetimeIndex(values)
15531553
if values.tz is not None:

0 commit comments

Comments
 (0)