diff --git a/pandas/core/arrays/masked.py b/pandas/core/arrays/masked.py index 576a75de9962c..3a4752268f4d6 100644 --- a/pandas/core/arrays/masked.py +++ b/pandas/core/arrays/masked.py @@ -185,6 +185,8 @@ def fillna(self, value=None, method=None, limit: int | None = None) -> Self: else: # fill with value new_values = self.copy() + if np.isneginf(value) or np.isinf(value): + new_values = new_values.astype(np.float64) new_values[mask] = value else: new_values = self.copy()