Skip to content

Commit 2ea1793

Browse files
committed
Adding overrides for default values
1 parent 1fa5025 commit 2ea1793

File tree

1 file changed

+12
-1
lines changed

1 file changed

+12
-1
lines changed

pandas/core/arrays/sparse/accessor.py

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -313,7 +313,18 @@ def from_spmatrix(cls, data, index=None, columns=None) -> DataFrame:
313313
indices = data.indices
314314
indptr = data.indptr
315315
array_data = data.data
316-
dtype = SparseDtype(array_data.dtype)
316+
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)
317328
arrays = []
318329
for i in range(n_columns):
319330
sl = slice(indptr[i], indptr[i + 1])

0 commit comments

Comments
 (0)