Skip to content

Commit 7804303

Browse files
committed
BUG: Fix make_sparse mask generation not to cast when dtype is object
1 parent cbb090f commit 7804303

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,
@@ -789,7 +790,16 @@ def make_sparse(arr, kind='block', fill_value=None):
789790
if is_string_dtype(arr):
790791
arr = arr.astype(object)
791792

792-
mask = arr != fill_value
793+
if is_object_dtype(arr.dtype):
794+
mask = []
795+
for e in arr:
796+
if type(e) is type(fill_value):
797+
mask.append(e != fill_value)
798+
else:
799+
mask.append(True)
800+
mask = np.array(mask)
801+
else:
802+
mask = arr != fill_value
793803

794804
length = len(arr)
795805
if length != mask.size:

0 commit comments

Comments
 (0)