{"record":{"id":"b81de3ef72dc0f9a","repo":"pandas-dev/pandas","slug":"interpolate-is-not-implemented-for-dtype-self-dty-b81de3","errorCode":null,"errorMessage":"interpolate is not implemented for dtype={self.dtype}","messagePattern":"interpolate is not implemented for dtype=(.+?)","errorType":"exception","errorClass":"NotImplementedError","httpStatus":null,"severity":"error","filePath":"pandas/core/arrays/masked.py","lineNumber":2125,"sourceCode":"        **kwargs,\n    ) -> FloatingArray:\n        \"\"\"\n        See NDFrame.interpolate.__doc__.\n        \"\"\"\n        # NB: we return type(self) even if copy=False\n        if self.dtype.kind == \"f\":\n            if copy:\n                data = self._data.copy()\n                mask = self._mask.copy()\n            else:\n                data = self._data\n                mask = self._mask\n        elif self.dtype.kind in \"iu\":\n            copy = True\n            data = self._data.astype(\"f8\")\n            mask = self._mask.copy()\n        else:\n            raise NotImplementedError(\n                f\"interpolate is not implemented for dtype={self.dtype}\"\n            )\n\n        missing.interpolate_2d_inplace(\n            data,\n            method=method,\n            axis=0,\n            index=index,\n            limit=limit,\n            limit_direction=limit_direction,\n            limit_area=limit_area,\n            mask=mask,\n            **kwargs,\n        )\n        if not copy:\n            return self  # type: ignore[return-value]\n        if self.dtype.kind == \"f\":\n            return type(self)._simple_new(data, mask)  # type: ignore[return-value]","sourceCodeStart":2107,"sourceCodeEnd":2143,"githubUrl":"https://github.com/pandas-dev/pandas/blob/71959b8cb9b2459c16e14b34f28b178ccfe14735/pandas/core/arrays/masked.py#L2107-L2143","documentation":"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.","triggerScenarios":"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'.","commonSituations":"Running df.interpolate() across a mixed-dtype frame that includes a 'boolean' column; calling interpolate on a column that was inadvertently converted to boolean.","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."],"exampleFix":"// before\ndf.interpolate()  # raises if df has a 'boolean' masked column\n\n// after\ndf.select_dtypes(include=\"number\").interpolate()","handlingStrategy":"type-guard","validationCode":"def interpolate_numeric_only(df):\n    numeric = df.select_dtypes(include=\"number\")\n    return numeric.interpolate()","typeGuard":"def is_interpolatable(arr) -> bool:\n    return getattr(arr.dtype, \"kind\", None) in (\"f\", \"i\", \"u\")","tryCatchPattern":"try:\n    out = df.interpolate()\nexcept NotImplementedError as e:\n    if \"interpolate is not implemented for dtype\" in str(e):\n        out = df.select_dtypes(include=\"number\").interpolate()\n    else:\n        raise","preventionTips":["Interpolate only numeric columns; ffill non-numeric.","Gate interpolate behind a dtype filter in generic pipelines.","Audit mixed-dtype frames before blanket interpolate()."],"tags":["masked-array","interpolate","dtype","not-implemented"],"analyzedSha":"71959b8cb9b2459c16e14b34f28b178ccfe14735","analyzedAt":"2026-08-07T01:30:20.476Z","schemaVersion":2},"datasetVersion":"2026-08-07T03:17:09.362Z"}