@@ -1008,24 +1008,19 @@ def test_merge_datatype_error(self):
1008
1008
with tm .assert_raises_regex (MergeError , msg ):
1009
1009
merge_asof (left , right , on = 'a' )
1010
1010
1011
- def test_merge_on_nans_int (self ):
1012
- # 23189
1013
- msg = "Merge keys contain null values on left side"
1014
- left = pd .DataFrame ({'a' : [1.0 , 5.0 , 10.0 , 12.0 , np .nan ],
1015
- 'left_val' : ['a' , 'b' , 'c' , 'd' , 'e' ]})
1016
- right = pd .DataFrame ({'a' : [1.0 , 5.0 , 10.0 , 12.0 ],
1017
- 'right_val' : [1 , 6 , 11 , 15 ]})
1018
-
1019
- with tm .assert_raises_regex (ValueError , msg ):
1020
- merge_asof (left , right , on = 'a' )
1021
-
1022
- def test_merge_on_nans_datetime (self ):
1023
- # 23189
1024
- msg = "Merge keys contain null values on right side"
1025
- left = pd .DataFrame ({"a" : pd .date_range ('20130101' , periods = 5 )})
1026
- date_vals = pd .date_range ('20130102' , periods = 5 )\
1027
- .append (pd .Index ([None ]))
1028
- right = pd .DataFrame ({"a" : date_vals })
1011
+ @pytest .mark .parametrize ('func' , [lambda x : x , lambda x : to_datetime (x )],
1012
+ ids = ['numeric' , 'datetime' ])
1013
+ @pytest .mark .parametrize ('side' , ['left' , 'right' ])
1014
+ def test_merge_on_nans (self , func , side ):
1015
+ # GH 23189
1016
+ msg = "Merge keys contain null values on {} side" .format (side )
1017
+ nulls = func ([1.0 , 5.0 , np .nan ])
1018
+ non_nulls = func ([1.0 , 5.0 , 10. ])
1019
+ df_null = pd .DataFrame ({'a' : nulls , 'left_val' : ['a' , 'b' , 'c' ]})
1020
+ df = pd .DataFrame ({'a' : non_nulls , 'right_val' : [1 , 6 , 11 ]})
1029
1021
1030
1022
with tm .assert_raises_regex (ValueError , msg ):
1031
- merge_asof (left , right , on = 'a' )
1023
+ if side == 'left' :
1024
+ merge_asof (df_null , df , on = 'a' )
1025
+ else :
1026
+ merge_asof (df , df_null , on = 'a' )
0 commit comments