@@ -2966,6 +2966,42 @@ def test_slice_locs_indexerror(self):
2966
2966
s = Series (lrange (100000 ), times )
2967
2967
s .ix [datetime (1900 , 1 , 1 ):datetime (2100 , 1 , 1 )]
2968
2968
2969
+ def test_slicing_datetimes (self ):
2970
+
2971
+ # GH 7523
2972
+
2973
+ # unique
2974
+ df = DataFrame (np .arange (4. ,dtype = 'float64' ),
2975
+ index = [datetime (2001 , 1 , i , 10 , 00 ) for i in [1 ,2 ,3 ,4 ]])
2976
+ result = df .ix [datetime (2001 ,1 ,1 ,10 ):]
2977
+ assert_frame_equal (result ,df )
2978
+ result = df .ix [:datetime (2001 ,1 ,4 ,10 )]
2979
+ assert_frame_equal (result ,df )
2980
+ result = df .ix [datetime (2001 ,1 ,1 ,10 ):datetime (2001 ,1 ,4 ,10 )]
2981
+ assert_frame_equal (result ,df )
2982
+
2983
+ result = df .ix [datetime (2001 ,1 ,1 ,11 ):]
2984
+ expected = df .iloc [1 :]
2985
+ assert_frame_equal (result ,expected )
2986
+ result = df .ix ['20010101 11' :]
2987
+ assert_frame_equal (result ,expected )
2988
+
2989
+ # duplicates
2990
+ df = pd .DataFrame (np .arange (5. ,dtype = 'float64' ),
2991
+ index = [datetime (2001 , 1 , i , 10 , 00 ) for i in [1 ,2 ,2 ,3 ,4 ]])
2992
+
2993
+ result = df .ix [datetime (2001 ,1 ,1 ,10 ):]
2994
+ assert_frame_equal (result ,df )
2995
+ result = df .ix [:datetime (2001 ,1 ,4 ,10 )]
2996
+ assert_frame_equal (result ,df )
2997
+ result = df .ix [datetime (2001 ,1 ,1 ,10 ):datetime (2001 ,1 ,4 ,10 )]
2998
+ assert_frame_equal (result ,df )
2999
+
3000
+ result = df .ix [datetime (2001 ,1 ,1 ,11 ):]
3001
+ expected = df .iloc [1 :]
3002
+ assert_frame_equal (result ,expected )
3003
+ result = df .ix ['20010101 11' :]
3004
+ assert_frame_equal (result ,expected )
2969
3005
2970
3006
class TestSeriesDatetime64 (tm .TestCase ):
2971
3007
@@ -3054,7 +3090,7 @@ def test_intersection(self):
3054
3090
for tz in [None , 'Asia/Tokyo' ]:
3055
3091
rng = date_range ('6/1/2000' , '6/30/2000' , freq = 'D' , name = 'idx' )
3056
3092
3057
- # if target has the same name, it is preserved
3093
+ # if target has the same name, it is preserved
3058
3094
rng2 = date_range ('5/15/2000' , '6/20/2000' , freq = 'D' , name = 'idx' )
3059
3095
expected2 = date_range ('6/1/2000' , '6/20/2000' , freq = 'D' , name = 'idx' )
3060
3096
0 commit comments