@@ -2695,6 +2695,46 @@ def test_select_dtypes(self):
2695
2695
expected = df .reindex (index = list (df .index )[0 :10 ],columns = ['A' ])
2696
2696
tm .assert_frame_equal (expected , result )
2697
2697
2698
+ with ensure_clean (self .path ) as store :
2699
+
2700
+ # floats w/o NaN
2701
+ df = DataFrame (dict (cols = range (11 ), values = range (11 )),dtype = 'float64' )
2702
+ df ['cols' ] = (df ['cols' ]+ 10 ).apply (str )
2703
+
2704
+ store .append ('df1' ,df ,data_columns = True )
2705
+ result = store .select (
2706
+ 'df1' , where = 'values>2.0' )
2707
+ expected = df [df ['values' ]> 2.0 ]
2708
+ tm .assert_frame_equal (expected , result )
2709
+
2710
+ # floats with NaN
2711
+ df .iloc [0 ] = np .nan
2712
+ expected = df [df ['values' ]> 2.0 ]
2713
+
2714
+ store .append ('df2' ,df ,data_columns = True ,index = False )
2715
+ result = store .select (
2716
+ 'df2' , where = 'values>2.0' )
2717
+ tm .assert_frame_equal (expected , result )
2718
+
2719
+ # https://github.com/PyTables/PyTables/issues/282
2720
+ # bug in selection when 0th row has a np.nan and an index
2721
+ #store.append('df3',df,data_columns=True)
2722
+ #result = store.select(
2723
+ # 'df3', where='values>2.0')
2724
+ #tm.assert_frame_equal(expected, result)
2725
+
2726
+ # not in first position float with NaN ok too
2727
+ df = DataFrame (dict (cols = range (11 ), values = range (11 )),dtype = 'float64' )
2728
+ df ['cols' ] = (df ['cols' ]+ 10 ).apply (str )
2729
+
2730
+ df .iloc [1 ] = np .nan
2731
+ expected = df [df ['values' ]> 2.0 ]
2732
+
2733
+ store .append ('df4' ,df ,data_columns = True )
2734
+ result = store .select (
2735
+ 'df4' , where = 'values>2.0' )
2736
+ tm .assert_frame_equal (expected , result )
2737
+
2698
2738
def test_select_with_many_inputs (self ):
2699
2739
2700
2740
with ensure_clean (self .path ) as store :
0 commit comments