@@ -211,6 +211,89 @@ def test_frame_fillna_limit(self):
211
211
expected .values [:3 ] = np .nan
212
212
tm .assert_frame_equal (result , expected )
213
213
214
+ def test_sparse_series_fillna_limit (self ):
215
+ index = np .arange (10 )
216
+ s = Series (np .random .randn (10 ), index = index )
217
+
218
+ ss = s [:2 ].reindex (index ).to_sparse ()
219
+ result = ss .fillna (method = 'pad' , limit = 5 )
220
+ expected = ss .fillna (method = 'pad' , limit = 5 )
221
+ expected = expected .to_dense ()
222
+ expected [- 3 :] = np .nan
223
+ expected = expected .to_sparse ()
224
+ assert_series_equal (result , expected )
225
+
226
+ ss = s [- 2 :].reindex (index ).to_sparse ()
227
+ result = ss .fillna (method = 'backfill' , limit = 5 )
228
+ expected = ss .fillna (method = 'backfill' )
229
+ expected = expected .to_dense ()
230
+ expected [:3 ] = np .nan
231
+ expected = expected .to_sparse ()
232
+ assert_series_equal (result , expected )
233
+
234
+ def test_sparse_series_pad_backfill_limit (self ):
235
+ index = np .arange (10 )
236
+ s = Series (np .random .randn (10 ), index = index )
237
+ s = s .to_sparse ()
238
+
239
+ result = s [:2 ].reindex (index , method = 'pad' , limit = 5 )
240
+ expected = s [:2 ].reindex (index ).fillna (method = 'pad' )
241
+ expected = expected .to_dense ()
242
+ expected [- 3 :] = np .nan
243
+ expected = expected .to_sparse ()
244
+ assert_series_equal (result , expected )
245
+
246
+ result = s [- 2 :].reindex (index , method = 'backfill' , limit = 5 )
247
+ expected = s [- 2 :].reindex (index ).fillna (method = 'backfill' )
248
+ expected = expected .to_dense ()
249
+ expected [:3 ] = np .nan
250
+ expected = expected .to_sparse ()
251
+ assert_series_equal (result , expected )
252
+
253
+ def test_sparse_frame_pad_backfill_limit (self ):
254
+ index = np .arange (10 )
255
+ df = DataFrame (np .random .randn (10 , 4 ), index = index )
256
+ sdf = df .to_sparse ()
257
+
258
+ result = sdf [:2 ].reindex (index , method = 'pad' , limit = 5 )
259
+
260
+ expected = sdf [:2 ].reindex (index ).fillna (method = 'pad' )
261
+ expected = expected .to_dense ()
262
+ expected .values [- 3 :] = np .nan
263
+ expected = expected .to_sparse ()
264
+ tm .assert_frame_equal (result , expected )
265
+
266
+ result = sdf [- 2 :].reindex (index , method = 'backfill' , limit = 5 )
267
+
268
+ expected = sdf [- 2 :].reindex (index ).fillna (method = 'backfill' )
269
+ expected = expected .to_dense ()
270
+ expected .values [:3 ] = np .nan
271
+ expected = expected .to_sparse ()
272
+ tm .assert_frame_equal (result , expected )
273
+
274
+ def test_sparse_frame_fillna_limit (self ):
275
+ index = np .arange (10 )
276
+ df = DataFrame (np .random .randn (10 , 4 ), index = index )
277
+ sdf = df .to_sparse ()
278
+
279
+ result = sdf [:2 ].reindex (index )
280
+ result = result .fillna (method = 'pad' , limit = 5 )
281
+
282
+ expected = sdf [:2 ].reindex (index ).fillna (method = 'pad' )
283
+ expected = expected .to_dense ()
284
+ expected .values [- 3 :] = np .nan
285
+ expected = expected .to_sparse ()
286
+ tm .assert_frame_equal (result , expected )
287
+
288
+ result = sdf [- 2 :].reindex (index )
289
+ result = result .fillna (method = 'backfill' , limit = 5 )
290
+
291
+ expected = sdf [- 2 :].reindex (index ).fillna (method = 'backfill' )
292
+ expected = expected .to_dense ()
293
+ expected .values [:3 ] = np .nan
294
+ expected = expected .to_sparse ()
295
+ tm .assert_frame_equal (result , expected )
296
+
214
297
def test_pad_require_monotonicity (self ):
215
298
rng = date_range ('1/1/2000' , '3/1/2000' , freq = 'B' )
216
299
0 commit comments