2222import pandas .core .datetools as datetools
2323from pandas .core .api import (DataFrame , Index , Series , notnull , isnull ,
2424 MultiIndex , DatetimeIndex , Timestamp , Period )
25+ from pandas import date_range
2526from pandas .io .parsers import read_csv
2627
2728from pandas .util .testing import (assert_almost_equal ,
@@ -2197,7 +2198,6 @@ def test_constructor_error_msgs(self):
21972198 self .assert_ ("Mixing dicts with non-Series may lead to ambiguous ordering." in str (detail ))
21982199
21992200 # wrong size ndarray, GH 3105
2200- from pandas import date_range
22012201 try :
22022202 DataFrame (np .arange (12 ).reshape ((4 , 3 )), columns = ['foo' , 'bar' , 'baz' ],
22032203 index = date_range ('2000-01-01' , periods = 3 ))
@@ -2888,7 +2888,6 @@ def test_constructor_with_datetimes(self):
28882888 assert_series_equal (result , expected )
28892889
28902890 # GH 2809
2891- from pandas import date_range
28922891 ind = date_range (start = "2000-01-01" , freq = "D" , periods = 10 )
28932892 datetimes = [ts .to_pydatetime () for ts in ind ]
28942893 datetime_s = Series (datetimes )
@@ -2975,7 +2974,6 @@ def test_constructor_for_list_with_dtypes(self):
29752974
29762975 def test_timedeltas (self ):
29772976
2978- from pandas import date_range
29792977 df = DataFrame (dict (A = Series (date_range ('2012-1-1' , periods = 3 , freq = 'D' )),
29802978 B = Series ([ timedelta (days = i ) for i in range (3 ) ])))
29812979 result = df .get_dtype_counts ()
@@ -3001,7 +2999,6 @@ def test_timedeltas(self):
30012999
30023000 def test_operators_timedelta64 (self ):
30033001
3004- from pandas import date_range
30053002 from datetime import datetime , timedelta
30063003 df = DataFrame (dict (A = date_range ('2012-1-1' , periods = 3 , freq = 'D' ),
30073004 B = date_range ('2012-1-2' , periods = 3 , freq = 'D' ),
@@ -6838,6 +6835,19 @@ def test_where_bug(self):
68386835 result .where (result > 2 , np .nan , inplace = True )
68396836 assert_frame_equal (result , expected )
68406837
6838+ def test_where_datetime (self ):
6839+
6840+ # GH 3311
6841+ df = DataFrame (dict (A = date_range ('20130102' ,periods = 5 ),
6842+ B = date_range ('20130104' ,periods = 5 ),
6843+ C = np .random .randn (5 )))
6844+
6845+ stamp = datetime (2013 ,1 ,3 )
6846+ result = df [df > stamp ]
6847+ expected = df .copy ()
6848+ expected .loc [[0 ,1 ],'A' ] = np .nan
6849+ assert_frame_equal (result ,expected )
6850+
68416851 def test_mask (self ):
68426852 df = DataFrame (np .random .randn (5 , 3 ))
68436853 cond = df > 0
0 commit comments