{"record":{"id":"65428fe5dbcad230","repo":"pola-rs/polars","slug":"pyarrow-8-0-0-is-required-for-to-pandas-use-pya","errorCode":null,"errorMessage":"pyarrow>=8.0.0 is required for `to_pandas(\"use_pyarrow_extension_array=True\")`, found pyarrow {pa.__version__!r}","messagePattern":"pyarrow>=8\\.0\\.0 is required for `to_pandas\\(\"use_pyarrow_extension_array=True\"\\)`, found pyarrow (.+?)","errorType":"exception","errorClass":"ModuleUpgradeRequiredError","httpStatus":null,"severity":"error","filePath":"py-polars/src/polars/series/series.py","lineNumber":5097,"sourceCode":"        Pass `use_pyarrow_extension_array=True` to get a pandas Series backed by a\n        PyArrow extension array. This will preserve null values.\n\n        >>> s.to_pandas(use_pyarrow_extension_array=True)\n        0       1\n        1       2\n        2    <NA>\n        Name: b, dtype: int64[pyarrow]\n        \"\"\"\n        if self.dtype == Object:\n            # Can't convert via PyArrow, so do it via NumPy\n            return pd.Series(self.to_numpy(), dtype=object, name=self.name)\n\n        if use_pyarrow_extension_array:\n            if parse_version(pd.__version__) < (1, 5):\n                msg = f'pandas>=1.5.0 is required for `to_pandas(\"use_pyarrow_extension_array=True\")`, found Pandas {pd.__version__}'\n                raise ModuleUpgradeRequiredError(msg)\n            if not _PYARROW_AVAILABLE or parse_version(pa.__version__) < (8, 0):\n                raise ModuleUpgradeRequiredError(\n                    f'pyarrow>=8.0.0 is required for `to_pandas(\"use_pyarrow_extension_array=True\")`'\n                    f\", found pyarrow {pa.__version__!r}\"\n                    if _PYARROW_AVAILABLE\n                    else \"\"\n                )\n\n        if isinstance(self.dtype, (Categorical, Enum)):\n            return (\n                self.to_frame()\n                .to_pandas(\n                    use_pyarrow_extension_array=use_pyarrow_extension_array, **kwargs\n                )\n                .iloc[:, 0]\n            )\n        else:\n            pa_arr = self.to_arrow()\n\n        if use_pyarrow_extension_array:","sourceCodeStart":5079,"sourceCodeEnd":5115,"githubUrl":"https://github.com/pola-rs/polars/blob/68506541d2de983056c9eb244e1ea05fab377dfc/py-polars/src/polars/series/series.py#L5079-L5115","documentation":"Raised by Series.to_pandas when use_pyarrow_extension_array=True but the installed pyarrow is older than 8.0.0. The pandas extension-array dtype requires that pyarrow version; upgrade pyarrow or drop the flag.","triggerScenarios":"Thrown at py-polars/src/polars/series/series.py:5253 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Upgrade pyarrow: `pip install 'pyarrow>=8.0.0'` to use `to_pandas` with `use_pyarrow_extension_array=True`."],"exampleFix":null,"handlingStrategy":"fallback","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"68506541d2de983056c9eb244e1ea05fab377dfc","analyzedAt":"2026-08-19T12:15:06.350Z","contentChangedAt":"2026-08-19T12:15:06.350Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}