Skip to content

Commit 82e8484

Browse files
committed
BUG: Fix make_spase mask generation not to cast when dtype is object
1 parent 58441cf commit 82e8484

File tree

1 file changed

+11
-1
lines changed

1 file changed

+11
-1
lines changed

pandas/core/sparse/array.py

+11-1
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
from pandas.core.dtypes.common import (
2020
_ensure_platform_int,
2121
is_float, is_integer,
22+
is_object_dtype,
2223
is_integer_dtype,
2324
is_bool_dtype,
2425
is_list_like,
@@ -779,7 +780,16 @@ def make_sparse(arr, kind='block', fill_value=None):
779780
if is_string_dtype(arr):
780781
arr = arr.astype(object)
781782

782-
mask = arr != fill_value
783+
if is_object_dtype(arr.dtype):
784+
mask = []
785+
for e in arr:
786+
if type(e) is type(fill_value):
787+
mask.append(e != fill_value)
788+
else:
789+
mask.append(True)
790+
mask = np.array(mask)
791+
else:
792+
mask = arr != fill_value
783793

784794
length = len(arr)
785795
if length != mask.size:

0 commit comments

Comments
 (0)