Skip to content

Commit 4f6be8f

Browse files
meeseeksmachinejreback
authored andcommitted
Backport PR pandas-dev#27549: BUG: Fix interpolate ValueError for datetime64_tz index (pandas-dev#27560)
1 parent a09b3d5 commit 4f6be8f

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,
@@ -7035,7 +7034,7 @@ def interpolate(
70357034
methods = {"index", "values", "nearest", "time"}
70367035
is_numeric_or_datetime = (
70377036
is_numeric_dtype(index)
7038-
or is_datetime64_dtype(index)
7037+
or is_datetime64_any_dtype(index)
70397038
or is_timedelta64_dtype(index)
70407039
)
70417040
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
@@ -1518,10 +1518,16 @@ def test_interp_nonmono_raise(self):
15181518
s.interpolate(method="krogh")
15191519

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

15271533
def test_interp_limit_no_nans(self):

0 commit comments

Comments
 (0)