pandas-dev/pandas · error · NotImplementedError
interpolate is not implemented for dtype={self.dtype}
Error message
interpolate is not implemented for dtype={self.dtype} What it means
Raised by BaseMaskedArray._interpolate when the array's dtype is neither floating (kind 'f') nor integer (kind 'iu'). Interpolation is only meaningful for numeric data; for boolean or other masked dtypes pandas has no interpolation implementation and raises NotImplementedError.
Source
Thrown at pandas/core/arrays/masked.py:2125
**kwargs,
) -> FloatingArray:
"""
See NDFrame.interpolate.__doc__.
"""
# NB: we return type(self) even if copy=False
if self.dtype.kind == "f":
if copy:
data = self._data.copy()
mask = self._mask.copy()
else:
data = self._data
mask = self._mask
elif self.dtype.kind in "iu":
copy = True
data = self._data.astype("f8")
mask = self._mask.copy()
else:
raise NotImplementedError(
f"interpolate is not implemented for dtype={self.dtype}"
)
missing.interpolate_2d_inplace(
data,
method=method,
axis=0,
index=index,
limit=limit,
limit_direction=limit_direction,
limit_area=limit_area,
mask=mask,
**kwargs,
)
if not copy:
return self # type: ignore[return-value]
if self.dtype.kind == "f":
return type(self)._simple_new(data, mask) # type: ignore[return-value]View on GitHub (pinned to 71959b8cb9)
Solutions
- Exclude non-numeric columns from interpolation: df.select_dtypes(include='number').interpolate().
- Drop or forward-fill the boolean column instead: df['bool_col'] = df['bool_col'].ffill().
- Convert to a numeric dtype if interpolation is genuinely required.
Example fix
// before df.interpolate() # raises if df has a 'boolean' masked column // after df.select_dtypes(include="number").interpolate()
Defensive patterns
Strategy: type-guard
Validate before calling
def interpolate_numeric_only(df):
numeric = df.select_dtypes(include="number")
return numeric.interpolate() Type guard
def is_interpolatable(arr) -> bool:
return getattr(arr.dtype, "kind", None) in ("f", "i", "u") Try / catch
try:
out = df.interpolate()
except NotImplementedError as e:
if "interpolate is not implemented for dtype" in str(e):
out = df.select_dtypes(include="number").interpolate()
else:
raise Prevention
- Interpolate only numeric columns; ffill non-numeric.
- Gate interpolate behind a dtype filter in generic pipelines.
- Audit mixed-dtype frames before blanket interpolate().
When it happens
Trigger: Calling Series.interpolate()/df.interpolate() on a column backed by a non-numeric masked array, e.g. a nullable BooleanArray ('boolean' dtype), so self.dtype.kind == 'b'.
Common situations: Running df.interpolate() across a mixed-dtype frame that includes a 'boolean' column; calling interpolate on a column that was inadvertently converted to boolean.
Related errors
- No masked accumulation defined for dtype {values.dtype.type}
- Cannot interpolate with {self.dtype} dtype
- interpolate is not implemented for dtype={self.dtype}
- {type(self).__name__} does not implement interpolate
- Default 'empty' implementation is invalid for dtype='{dtype}
AI-assisted analysis of pandas-dev/pandas@71959b8cb9 (2026-08-07).
Data as JSON: /api/errors/b81de3ef72dc0f9a.
Report an issue: GitHub.