@@ -95,3 +95,24 @@ def test_set_frame_overwrite_object(self, data):
9595 df = pd .DataFrame ({"A" : [1 ] * len (data )}, dtype = object )
9696 df ['A' ] = data
9797 assert df .dtypes ['A' ] == data .dtype
98+
99+ def test_merge (self , data , na_value ):
100+ # GH-20743
101+ df1 = pd .DataFrame ({'ext' : data [:3 ], 'int1' : [1 , 2 , 3 ],
102+ 'key' : [0 , 1 , 2 ]})
103+ df2 = pd .DataFrame ({'int2' : [1 , 2 , 3 , 4 ], 'key' : [0 , 0 , 1 , 3 ]})
104+
105+ res = pd .merge (df1 , df2 )
106+ exp = pd .DataFrame (
107+ {'int1' : [1 , 1 , 2 ], 'int2' : [1 , 2 , 3 ], 'key' : [0 , 0 , 1 ],
108+ 'ext' : data ._constructor_from_sequence (
109+ [data [0 ], data [0 ], data [1 ]])})
110+ self .assert_frame_equal (res , exp [['ext' , 'int1' , 'key' , 'int2' ]])
111+
112+ res = pd .merge (df1 , df2 , how = 'outer' )
113+ exp = pd .DataFrame (
114+ {'int1' : [1 , 1 , 2 , 3 , np .nan ], 'int2' : [1 , 2 , 3 , np .nan , 4 ],
115+ 'key' : [0 , 0 , 1 , 2 , 3 ],
116+ 'ext' : data ._constructor_from_sequence (
117+ [data [0 ], data [0 ], data [1 ], data [2 ], na_value ])})
118+ self .assert_frame_equal (res , exp [['ext' , 'int1' , 'key' , 'int2' ]])
0 commit comments