@@ -424,38 +424,35 @@ def test_reindex_nearest(self):
424
424
expected = pd .Series ([0 , np .nan , np .nan , 2 ], target ).to_sparse ()
425
425
tm .assert_sp_series_equal (expected , actual )
426
426
427
- def tests_indexing_with_sparse (self ):
428
- # GH 13985
429
-
430
- for kind in ['integer' , 'block' ]:
431
- for fill in [True , False , np .nan ]:
432
- arr = pd .SparseArray ([1 , 2 , 3 ], kind = kind )
433
- indexer = pd .SparseArray ([True , False , True ], fill_value = fill ,
434
- dtype = bool )
435
-
436
- tm .assert_sp_array_equal (pd .SparseArray ([1 , 3 ], kind = kind ),
437
- arr [indexer ],)
438
-
439
- s = pd .SparseSeries (arr , index = ['a' , 'b' , 'c' ],
440
- dtype = np .float64 )
441
-
442
- exp = pd .SparseSeries (
443
- [1 , 3 ], index = ['a' , 'c' ],
444
- dtype = SparseDtype (np .float64 , s .fill_value ),
445
- kind = kind
446
- )
447
- tm .assert_sp_series_equal (s [indexer ], exp )
448
- tm .assert_sp_series_equal (s .loc [indexer ], exp )
449
- tm .assert_sp_series_equal (s .iloc [indexer ], exp )
450
-
451
- indexer = pd .SparseSeries (indexer , index = ['a' , 'b' , 'c' ])
452
- tm .assert_sp_series_equal (s [indexer ], exp )
453
- tm .assert_sp_series_equal (s .loc [indexer ], exp )
454
-
455
- msg = ("iLocation based boolean indexing cannot use an "
456
- "indexable as a mask" )
457
- with tm .assert_raises_regex (ValueError , msg ):
458
- s .iloc [indexer ]
427
+ @pytest .mark .parametrize ("kind" , ["integer" , "block" ])
428
+ @pytest .mark .parametrize ("fill" , [True , False , np .nan ])
429
+ def tests_indexing_with_sparse (self , kind , fill ):
430
+ # see gh-13985
431
+ arr = pd .SparseArray ([1 , 2 , 3 ], kind = kind )
432
+ indexer = pd .SparseArray ([True , False , True ],
433
+ fill_value = fill ,
434
+ dtype = bool )
435
+
436
+ expected = arr [indexer ]
437
+ result = pd .SparseArray ([1 , 3 ], kind = kind )
438
+ tm .assert_sp_array_equal (result , expected )
439
+
440
+ s = pd .SparseSeries (arr , index = ["a" , "b" , "c" ], dtype = np .float64 )
441
+ expected = pd .SparseSeries ([1 , 3 ], index = ["a" , "c" ], kind = kind ,
442
+ dtype = SparseDtype (np .float64 , s .fill_value ))
443
+
444
+ tm .assert_sp_series_equal (s [indexer ], expected )
445
+ tm .assert_sp_series_equal (s .loc [indexer ], expected )
446
+ tm .assert_sp_series_equal (s .iloc [indexer ], expected )
447
+
448
+ indexer = pd .SparseSeries (indexer , index = ["a" , "b" , "c" ])
449
+ tm .assert_sp_series_equal (s [indexer ], expected )
450
+ tm .assert_sp_series_equal (s .loc [indexer ], expected )
451
+
452
+ msg = ("iLocation based boolean indexing cannot "
453
+ "use an indexable as a mask" )
454
+ with tm .assert_raises_regex (ValueError , msg ):
455
+ s .iloc [indexer ]
459
456
460
457
461
458
class TestSparseSeriesMultiIndexing (TestSparseSeriesIndexing ):
0 commit comments