Skip to content

Commit c18253f

Browse files
committed
Error message when interpolating with non-numeric index column pandas-dev#21662
1 parent 2b13605 commit c18253f

File tree

2 files changed

+20
-0
lines changed

2 files changed

+20
-0
lines changed

pandas/core/generic.py

+7
Original file line numberDiff line numberDiff line change
@@ -6024,6 +6024,13 @@ def interpolate(self, method='linear', axis=0, limit=None, inplace=False,
60246024
raise NotImplementedError("Interpolation with NaNs in the index "
60256025
"has not been implemented. Try filling "
60266026
"those NaNs before interpolating.")
6027+
6028+
if not np.issubdtype(index.dtype, np.number):
6029+
raise TypeError("Index column must be numeric when using any "
6030+
"interpolation method other than linear. Try "
6031+
"setting a numeric index column before "
6032+
"interpolating")
6033+
60276034
data = _maybe_transposed_self._data
60286035
new_data = data.interpolate(method=method, axis=ax, index=index,
60296036
values=_maybe_transposed_self, limit=limit,

pandas/tests/generic/test_generic.py

+13
Original file line numberDiff line numberDiff line change
@@ -1008,3 +1008,16 @@ def test_pipe_panel(self):
10081008

10091009
with pytest.raises(ValueError):
10101010
result = wp.pipe((f, 'y'), x=1, y=1)
1011+
1012+
def test_interpolate(self):
1013+
#Using a numeric index column
1014+
df = DataFrame([0, 1, np.nan, 3], index=[1, 2, 3, 4])
1015+
series = Series(df[0])
1016+
assert series.interpolate(
1017+
method="quadratic").equals(series.interpolate(method="linear"))
1018+
1019+
#Using a non-numeric index column
1020+
df = DataFrame([0, 1, np.nan, 3], index=["A", "B", "C", "D"])
1021+
series = Series(df[0])
1022+
with pytest.raises(TypeError):
1023+
result = series.interpolate(method="quadratic")

0 commit comments

Comments
 (0)