Closed
Description
pytest pandas/tests/extension/test_sparse.py::TestGetitem::test_getitem_scalar --count=100 -x
Tat fails when the first value is sparse, the fill_value is int, but the .dtype.type
is np.int64
.
pytest pandas/tests/extension/test_sparse.py::TestMethods::test_unique --count=100 -x
That fails with the array is all sparse. Fixed by
diff --git a/pandas/core/sparse/array.py b/pandas/core/sparse/array.py
index 15b5118db..17e2bd188 100644
--- a/pandas/core/sparse/array.py
+++ b/pandas/core/sparse/array.py
@@ -561,7 +561,7 @@ class SparseArray(PandasObject, ExtensionArray, ExtensionOpsMixin):
return -1
indices = self.sp_index.to_int_index().indices
- if indices[0] > 0:
+ if len(indices) == 0 or indices[0] > 0:
return 0
diff = indices[1:] - indices[:-1]
diff --git a/pandas/tests/sparse/test_array.py b/pandas/tests/sparse/test_array.py
index 0257d9962..5b1afdc7a 100644
--- a/pandas/tests/sparse/test_array.py
+++ b/pandas/tests/sparse/test_array.py
@@ -1065,6 +1065,13 @@ def test_unique_na_fill(arr, fill_value):
tm.assert_numpy_array_equal(a, b)
+def test_unique_all_sparse():
+ arr = SparseArray([0, 0])
+ result = arr.unique()
+ expected = SparseArray([0])
+ tm.assert_sp_array_equal(result, expected)
+
+