diff --git a/ibis/formats/pandas.py b/ibis/formats/pandas.py index 4355013d6000e..87c5411881199 100644 --- a/ibis/formats/pandas.py +++ b/ibis/formats/pandas.py @@ -161,6 +161,15 @@ def convert_Boolean(s, dtype, pandas_type): else: return s + @staticmethod + def convert_Decimal(s, dtype, pandas_type): + import decimal + + import pyarrow as pa + + arr = pa.array(s.map(decimal.Decimal, na_action="ignore").values) + return arr.cast(dtype.to_pyarrow(), safe=False) + @staticmethod def convert_Timestamp(s, dtype, pandas_type): if isinstance(dtype, pd.DatetimeTZDtype):