diff --git a/pandas/core/nanops.py b/pandas/core/nanops.py index 83067ffd64c79..36881fb6c6232 100644 --- a/pandas/core/nanops.py +++ b/pandas/core/nanops.py @@ -269,6 +269,9 @@ def _view_if_needed(values): def _wrap_results(result, dtype): """ wrap our results if needed """ + if (is_integer(result) and is_datetime_or_timedelta_dtype(dtype) + and result == _int64_max): + result = tslibs.iNaT if is_datetime64_dtype(dtype): if not isinstance(result, np.ndarray): result = tslibs.Timestamp(result) @@ -718,9 +721,6 @@ def reduction(values, axis=None, skipna=True, mask=None): result = np.nan else: result = getattr(values, meth)(axis) - if (is_integer(result) and is_datetime_or_timedelta_dtype(dtype) - and result == _int64_max): - result = tslibs.iNaT result = _wrap_results(result, dtype) return _maybe_null_out(result, axis, mask) diff --git a/pandas/tests/series/test_datetime_values.py b/pandas/tests/series/test_datetime_values.py index 1fb7de3730b55..7c74da8e2d684 100644 --- a/pandas/tests/series/test_datetime_values.py +++ b/pandas/tests/series/test_datetime_values.py @@ -515,10 +515,12 @@ def test_dt_timetz_accessor(self, tz_naive_fixture): pd.Series([pd.NaT, pd.Timedelta('nat')]), pd.Series([pd.Timedelta('nat'), pd.Timedelta('nat')])]) def test_minmax_nat_series(self, nat): + # GH 23282 assert nat.min() is pd.NaT assert nat.max() is pd.NaT @pytest.mark.parametrize('nat', [ + # GH 23282 pd.DataFrame([pd.NaT, pd.NaT]), pd.DataFrame([pd.NaT, pd.Timedelta('nat')]), pd.DataFrame([pd.Timedelta('nat'), pd.Timedelta('nat')])])