Skip to content

Commit 0d36e3d

Browse files
committed
Adding default value overrides to Sparse dtype
1 parent 2ea1793 commit 0d36e3d

File tree

2 files changed

+9
-11
lines changed

2 files changed

+9
-11
lines changed

pandas/core/arrays/sparse/accessor.py

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -314,17 +314,7 @@ def from_spmatrix(cls, data, index=None, columns=None) -> DataFrame:
314314
indptr = data.indptr
315315
array_data = data.data
316316

317-
default_fill_value_override = None
318-
319-
# Default values for float type is NaN. Hence, in order to create a
320-
# Sparse matrix of type float, we need override this default value as 0.0.
321-
if array_data.dtype.kind in "f":
322-
default_fill_value_override = 0.0
323-
# Similarly, default value needs to be overridden for complex type arrays.
324-
elif array_data.dtype.kind in "c":
325-
default_fill_value_override = 0.0 + 0.0j
326-
327-
dtype = SparseDtype(array_data.dtype, fill_value=default_fill_value_override)
317+
dtype = SparseDtype(array_data.dtype)
328318
arrays = []
329319
for i in range(n_columns):
330320
sl = slice(indptr[i], indptr[i + 1])

pandas/core/dtypes/dtypes.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1747,6 +1747,14 @@ def __init__(self, dtype: Dtype = np.float64, fill_value: Any = None) -> None:
17471747
if fill_value is None:
17481748
fill_value = na_value_for_dtype(dtype)
17491749

1750+
# Default values for float type is NaN. Hence, in order to create a Sparse
1751+
# matrix of type float, we need to override this default value as 0.0.
1752+
if dtype.kind in "f":
1753+
fill_value = 0.0
1754+
# Similarly, default value needs to be overridden for complex type arrays.
1755+
elif dtype.kind in "c":
1756+
fill_value = 0.0 + 0.0j
1757+
17501758
self._dtype = dtype
17511759
self._fill_value = fill_value
17521760
self._check_fill_value()

0 commit comments

Comments
 (0)