@@ -41,6 +41,41 @@ def test_join(self):
41
41
index = [0 , 1 , 2 , 3 ])
42
42
tm .assert_frame_equal (result , expected )
43
43
44
+ def test_join_sort (self ):
45
+ df1 = pd .DataFrame ({'a' : [20 , 10 , 0 ]}, index = [2 , 1 , 0 ])
46
+ df2 = pd .DataFrame ({'b' : [100 , 200 , 300 ]}, index = [1 , 2 , 3 ])
47
+
48
+ result = df1 .join (df2 , sort = True )
49
+ expected = pd .DataFrame ({'a' : [0 , 10 , 20 ], 'b' : [None , 100 , 200 ]},
50
+ index = [0 , 1 , 2 ])
51
+ tm .assert_frame_equal (result , expected )
52
+
53
+ result = df1 .join (df2 , how = 'left' , sort = True )
54
+ expected = pd .DataFrame ({'a' : [0 , 10 , 20 ], 'b' : [None , 100 , 200 ]},
55
+ index = [0 , 1 , 2 ])
56
+ tm .assert_frame_equal (result , expected )
57
+
58
+ result = df1 .join (df2 , how = 'right' , sort = True )
59
+ expected = pd .DataFrame ({'a' : [10 , 20 , None ], 'b' : [100 , 200 , 300 ]},
60
+ index = [1 , 2 , 3 ])
61
+ tm .assert_frame_equal (result , expected )
62
+
63
+ result = df2 .join (df1 , how = 'right' , sort = True )
64
+ expected = pd .DataFrame ([[None , 0 ], [100 , 10 ], [200 , 20 ]],
65
+ columns = ['b' , 'a' ], index = [0 , 1 , 2 ])
66
+ tm .assert_frame_equal (result , expected )
67
+
68
+ result = df1 .join (df2 , how = 'inner' , sort = True )
69
+ expected = pd .DataFrame ({'a' : [10 , 20 ], 'b' : [100 , 200 ]},
70
+ index = [1 , 2 ])
71
+ tm .assert_frame_equal (result , expected )
72
+
73
+ result = df1 .join (df2 , how = 'outer' , sort = True )
74
+ expected = pd .DataFrame ({'a' : [0 , 10 , 20 , None ],
75
+ 'b' : [None , 100 , 200 , 300 ]},
76
+ index = [0 , 1 , 2 , 3 ])
77
+ tm .assert_frame_equal (result , expected )
78
+
44
79
def test_join_index (self ):
45
80
# left / right
46
81
0 commit comments