From 4e4688f5bf03d7f6f39b967d4c1af28307f7e3ee Mon Sep 17 00:00:00 2001 From: Matthew Roeschke <10647082+mroeschke@users.noreply.github.com> Date: Fri, 31 Mar 2023 11:17:43 -0700 Subject: [PATCH] ENH: Implement .dt.year for ArrowExtensionArray --- pandas/core/arrays/arrow/array.py | 4 ++++ pandas/tests/extension/test_arrow.py | 1 + 2 files changed, 5 insertions(+) diff --git a/pandas/core/arrays/arrow/array.py b/pandas/core/arrays/arrow/array.py index 998aa6b9e6f08..86a15ba6ca61b 100644 --- a/pandas/core/arrays/arrow/array.py +++ b/pandas/core/arrays/arrow/array.py @@ -1961,6 +1961,10 @@ def _str_wrap(self, width: int, **kwargs): "str.wrap not supported with pd.ArrowDtype(pa.string())." ) + @property + def _dt_year(self): + return type(self)(pc.year(self._pa_array)) + @property def _dt_day(self): return type(self)(pc.day(self._pa_array)) diff --git a/pandas/tests/extension/test_arrow.py b/pandas/tests/extension/test_arrow.py index 24013f4aa3a9a..f441c2656c92a 100644 --- a/pandas/tests/extension/test_arrow.py +++ b/pandas/tests/extension/test_arrow.py @@ -2110,6 +2110,7 @@ def test_unsupported_dt(data): @pytest.mark.parametrize( "prop, expected", [ + ["year", 2023], ["day", 2], ["day_of_week", 0], ["dayofweek", 0],