@@ -2293,33 +2293,82 @@ def test_insert(self):
2293
2293
self .assertEqual (result .freqstr , 'M' )
2294
2294
2295
2295
def test_delete (self ):
2296
- idx = date_range (start = '2000-01-01' , periods = 4 , freq = 'M' , name = 'idx' )
2296
+ idx = date_range (start = '2000-01-01' , periods = 5 , freq = 'M' , name = 'idx' )
2297
2297
2298
- expected = date_range (start = '2000-02-01' , periods = 3 , freq = 'M' , name = 'idx' )
2299
- result = idx .delete (0 )
2300
- self .assertTrue (result .equals (expected ))
2301
- self .assertEqual (result .name , expected .name )
2302
- self .assertEqual (result .freqstr , 'M' )
2298
+ # prserve freq
2299
+ expected_0 = date_range (start = '2000-02-01' , periods = 4 , freq = 'M' , name = 'idx' )
2300
+ expected_4 = date_range (start = '2000-01-01' , periods = 4 , freq = 'M' , name = 'idx' )
2303
2301
2304
- expected = date_range (start = '2000-01-01' , periods = 3 , freq = 'M' , name = 'idx' )
2305
- result = idx .delete (- 1 )
2306
- self .assertTrue (result .equals (expected ))
2307
- self .assertEqual (result .name , expected .name )
2308
- self .assertEqual (result .freqstr , 'M' )
2302
+ # reset freq to None
2303
+ expected_1 = DatetimeIndex (['2000-01-31' , '2000-03-31' , '2000-04-30' ,
2304
+ '2000-05-31' ], freq = None , name = 'idx' )
2305
+
2306
+ cases = {0 : expected_0 , - 5 : expected_0 ,
2307
+ - 1 : expected_4 , 4 : expected_4 ,
2308
+ 1 : expected_1 }
2309
+ for n , expected in compat .iteritems (cases ):
2310
+ result = idx .delete (n )
2311
+ self .assertTrue (result .equals (expected ))
2312
+ self .assertEqual (result .name , expected .name )
2313
+ self .assertEqual (result .freq , expected .freq )
2309
2314
2310
2315
with tm .assertRaises ((IndexError , ValueError )):
2311
2316
# either depeidnig on numpy version
2312
2317
result = idx .delete (5 )
2313
2318
2314
- idx = date_range (start = '2000-01-01' , periods = 4 ,
2315
- freq = 'M ' , name = 'idx' , tz = 'US/Pacific' )
2319
+ idx = date_range (start = '2000-01-01' , periods = 5 ,
2320
+ freq = 'D ' , name = 'idx' , tz = 'US/Pacific' )
2316
2321
2317
- expected = date_range (start = '2000-02-01 ' , periods = 3 ,
2318
- freq = 'M ' , name = 'idx' , tz = 'US/Pacific' )
2322
+ expected = date_range (start = '2000-01-02 ' , periods = 4 ,
2323
+ freq = 'D ' , name = 'idx' , tz = 'US/Pacific' )
2319
2324
result = idx .delete (0 )
2320
2325
self .assertTrue (result .equals (expected ))
2321
2326
self .assertEqual (result .name , expected .name )
2322
- self .assertEqual (result .freqstr , 'M' )
2327
+ self .assertEqual (result .freqstr , 'D' )
2328
+ self .assertEqual (result .tz , expected .tz )
2329
+
2330
+ def test_delete_slice (self ):
2331
+ idx = date_range (start = '2000-01-01' , periods = 10 , freq = 'D' , name = 'idx' )
2332
+
2333
+ # prserve freq
2334
+ expected_0_2 = date_range (start = '2000-01-04' , periods = 7 , freq = 'D' , name = 'idx' )
2335
+ expected_7_9 = date_range (start = '2000-01-01' , periods = 7 , freq = 'D' , name = 'idx' )
2336
+
2337
+ # reset freq to None
2338
+ expected_3_5 = DatetimeIndex (['2000-01-01' , '2000-01-02' , '2000-01-03' ,
2339
+ '2000-01-07' , '2000-01-08' , '2000-01-09' ,
2340
+ '2000-01-10' ], freq = None , name = 'idx' )
2341
+
2342
+ cases = {(0 , 1 , 2 ): expected_0_2 ,
2343
+ (7 , 8 , 9 ): expected_7_9 ,
2344
+ (3 , 4 , 5 ): expected_3_5 }
2345
+ for n , expected in compat .iteritems (cases ):
2346
+ result = idx .delete (n )
2347
+ self .assertTrue (result .equals (expected ))
2348
+ self .assertEqual (result .name , expected .name )
2349
+ self .assertEqual (result .freq , expected .freq )
2350
+
2351
+ result = idx .delete (slice (n [0 ], n [- 1 ] + 1 ))
2352
+ self .assertTrue (result .equals (expected ))
2353
+ self .assertEqual (result .name , expected .name )
2354
+ self .assertEqual (result .freq , expected .freq )
2355
+
2356
+ ts = pd .Series (1 , index = pd .date_range ('2000-01-01' , periods = 10 ,
2357
+ freq = 'D' , name = 'idx' ))
2358
+ # preserve freq
2359
+ result = ts .drop (ts .index [:5 ]).index
2360
+ expected = pd .date_range ('2000-01-06' , periods = 5 , freq = 'D' , name = 'idx' )
2361
+ self .assertTrue (result .equals (expected ))
2362
+ self .assertEqual (result .name , expected .name )
2363
+ self .assertEqual (result .freq , expected .freq )
2364
+
2365
+ # reset freq to None
2366
+ result = ts .drop (ts .index [[1 , 3 , 5 , 7 , 9 ]]).index
2367
+ expected = DatetimeIndex (['2000-01-01' , '2000-01-03' , '2000-01-05' ,
2368
+ '2000-01-07' , '2000-01-09' ], freq = None , name = 'idx' )
2369
+ self .assertTrue (result .equals (expected ))
2370
+ self .assertEqual (result .name , expected .name )
2371
+ self .assertEqual (result .freq , expected .freq )
2323
2372
2324
2373
def test_map_bug_1677 (self ):
2325
2374
index = DatetimeIndex (['2012-04-25 09:30:00.393000' ])
0 commit comments