@@ -27,16 +27,20 @@ def test_merge_antijoin(self):
27
27
tm .assert_frame_equal (result , expected )
28
28
29
29
def test_merge_antijoin_on_different_columns (self ):
30
- left = DataFrame ({"A" : [1.0 , 2.0 , 3.0 ], "B" : ["a" , "b" , "c" ]})
31
- right = DataFrame ({"C" : [1.0 , 2.0 , 4.0 ], "D" : ["a" , "d" , "b" ]})
30
+ left = DataFrame ({"A" : [1.0 , 2.0 , 3.0 ], "B" : ["a" , "b" , "c" ]}).astype (
31
+ {"B" : object }
32
+ )
33
+ right = DataFrame ({"C" : [1.0 , 2.0 , 4.0 ], "D" : ["a" , "d" , "b" ]}).astype (
34
+ {"D" : object }
35
+ )
32
36
33
37
result = merge (left , right , how = "left_anti" , left_on = "B" , right_on = "D" )
34
38
expected = DataFrame (
35
39
{
36
40
"A" : [3.0 ],
37
41
"B" : ["c" ],
38
42
"C" : [np .nan ],
39
- "D" : np .array ([np .nan ], dtype = right . D . dtype ),
43
+ "D" : np .array ([np .nan ], dtype = object ),
40
44
},
41
45
index = [2 ],
42
46
)
@@ -46,7 +50,7 @@ def test_merge_antijoin_on_different_columns(self):
46
50
expected = DataFrame (
47
51
{
48
52
"A" : [np .nan ],
49
- "B" : np .array ([np .nan ], dtype = left . B . dtype ),
53
+ "B" : np .array ([np .nan ], dtype = object ),
50
54
"C" : [2.0 ],
51
55
"D" : ["d" ],
52
56
},
@@ -55,16 +59,20 @@ def test_merge_antijoin_on_different_columns(self):
55
59
tm .assert_frame_equal (result , expected )
56
60
57
61
def test_merge_antijoin_nonunique_keys (self ):
58
- left = DataFrame ({"A" : [1.0 , 2.0 , 3.0 ], "B" : ["a" , "b" , "b" ]})
59
- right = DataFrame ({"C" : [1.0 , 2.0 , 4.0 ], "D" : ["b" , "d" , "d" ]})
62
+ left = DataFrame ({"A" : [1.0 , 2.0 , 3.0 ], "B" : ["a" , "b" , "b" ]}).astype (
63
+ {"B" : object }
64
+ )
65
+ right = DataFrame ({"C" : [1.0 , 2.0 , 4.0 ], "D" : ["b" , "d" , "d" ]}).astype (
66
+ {"D" : object }
67
+ )
60
68
61
69
result = merge (left , right , how = "left_anti" , left_on = "B" , right_on = "D" )
62
70
expected = DataFrame (
63
71
{
64
72
"A" : [1.0 ],
65
73
"B" : ["a" ],
66
74
"C" : [np .nan ],
67
- "D" : np .array ([np .nan ], dtype = right . D . dtype ),
75
+ "D" : np .array ([np .nan ], dtype = object ),
68
76
},
69
77
index = [0 ],
70
78
)
@@ -74,7 +82,7 @@ def test_merge_antijoin_nonunique_keys(self):
74
82
expected = DataFrame (
75
83
{
76
84
"A" : [np .nan , np .nan ],
77
- "B" : np .array ([np .nan , np .nan ], dtype = left . B . dtype ),
85
+ "B" : np .array ([np .nan , np .nan ], dtype = object ),
78
86
"C" : [2.0 , 4.0 ],
79
87
"D" : ["d" , "d" ],
80
88
},
@@ -89,11 +97,15 @@ def test_merge_antijoin_same_df(self):
89
97
tm .assert_frame_equal (result , expected , check_index_type = False )
90
98
91
99
def test_merge_antijoin_nans (self ):
92
- left = DataFrame ({"A" : [1.0 , 2.0 , np .nan ], "C" : ["a" , "b" , "c" ]})
93
- right = DataFrame ({"A" : [3.0 , 2.0 , np .nan ], "D" : ["d" , "e" , "f" ]})
100
+ left = DataFrame ({"A" : [1.0 , 2.0 , np .nan ], "C" : ["a" , "b" , "c" ]}).astype (
101
+ {"C" : object }
102
+ )
103
+ right = DataFrame ({"A" : [3.0 , 2.0 , np .nan ], "D" : ["d" , "e" , "f" ]}).astype (
104
+ {"D" : object }
105
+ )
94
106
result = merge (left , right , how = "left_anti" , on = "A" )
95
107
expected = DataFrame (
96
- {"A" : [1.0 ], "C" : ["a" ], "D" : np .array ([np .nan ], dtype = right . D . dtype )}
108
+ {"A" : [1.0 ], "C" : ["a" ], "D" : np .array ([np .nan ], dtype = object )}
97
109
)
98
110
tm .assert_frame_equal (result , expected )
99
111
0 commit comments