@@ -95,3 +95,24 @@ def test_set_frame_overwrite_object(self, data):
95
95
df = pd .DataFrame ({"A" : [1 ] * len (data )}, dtype = object )
96
96
df ['A' ] = data
97
97
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