Skip to content

Commit 460f174

Browse files
alorenzo175jreback
authored andcommitted
BUG: Fix interpolate ValueError for datetime64_tz index (#27549)
1 parent 41dc873 commit 460f174

File tree

3 files changed

+12
-7
lines changed

3 files changed

+12
-7
lines changed

doc/source/whatsnew/v0.25.1.rst

+1-1
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ Timezones
5656

5757
Numeric
5858
^^^^^^^
59-
-
59+
- Bug in :meth:`Series.interpolate` when using a timezone aware :class:`DatetimeIndex` (:issue:`27548`)
6060
-
6161
-
6262

pandas/core/generic.py

+1-2
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@
3030
is_bool,
3131
is_bool_dtype,
3232
is_datetime64_any_dtype,
33-
is_datetime64_dtype,
3433
is_datetime64tz_dtype,
3534
is_dict_like,
3635
is_extension_array_dtype,
@@ -7023,7 +7022,7 @@ def interpolate(
70237022
methods = {"index", "values", "nearest", "time"}
70247023
is_numeric_or_datetime = (
70257024
is_numeric_dtype(index)
7026-
or is_datetime64_dtype(index)
7025+
or is_datetime64_any_dtype(index)
70277026
or is_timedelta64_dtype(index)
70287027
)
70297028
if method not in methods and not is_numeric_or_datetime:

pandas/tests/series/test_missing.py

+10-4
Original file line numberDiff line numberDiff line change
@@ -1521,10 +1521,16 @@ def test_interp_nonmono_raise(self):
15211521
s.interpolate(method="krogh")
15221522

15231523
@td.skip_if_no_scipy
1524-
def test_interp_datetime64(self):
1525-
df = Series([1, np.nan, 3], index=date_range("1/1/2000", periods=3))
1526-
result = df.interpolate(method="nearest")
1527-
expected = Series([1.0, 1.0, 3.0], index=date_range("1/1/2000", periods=3))
1524+
@pytest.mark.parametrize("method", ["nearest", "pad"])
1525+
def test_interp_datetime64(self, method, tz_naive_fixture):
1526+
df = Series(
1527+
[1, np.nan, 3], index=date_range("1/1/2000", periods=3, tz=tz_naive_fixture)
1528+
)
1529+
result = df.interpolate(method=method)
1530+
expected = Series(
1531+
[1.0, 1.0, 3.0],
1532+
index=date_range("1/1/2000", periods=3, tz=tz_naive_fixture),
1533+
)
15281534
assert_series_equal(result, expected)
15291535

15301536
def test_interp_limit_no_nans(self):

0 commit comments

Comments
 (0)