77from pandas .tests .frame .common import TestData
88
99import pandas .util .testing as tm
10- from pandas .util .testing import (assertRaisesRegexp ,
11- assert_frame_equal )
1210
1311
14- class TestDataFrameJoin (tm . TestCase , TestData ):
12+ class TestDataFrameJoin (TestData ):
1513
1614 def test_join (self ):
1715 df1 = pd .DataFrame ({'a' : [20 , 10 , 0 ]}, index = [2 , 1 , 0 ])
1816 df2 = pd .DataFrame ({'b' : [100 , 200 , 300 ]}, index = [1 , 2 , 3 ])
1917
18+ result = df1 .join (df2 )
19+ expected = pd .DataFrame ({'a' : [20 , 10 , 0 ], 'b' : [200 , 100 , None ]},
20+ index = [2 , 1 , 0 ])
21+ tm .assert_frame_equal (result , expected )
22+
23+ result = df1 .join (df2 , how = 'left' )
24+ expected = pd .DataFrame ({'a' : [20 , 10 , 0 ], 'b' : [200 , 100 , None ]},
25+ index = [2 , 1 , 0 ])
26+ tm .assert_frame_equal (result , expected )
27+
28+ result = df1 .join (df2 , how = 'right' )
29+ expected = pd .DataFrame ({'a' : [10 , 20 , None ], 'b' : [100 , 200 , 300 ]},
30+ index = [1 , 2 , 3 ])
31+ tm .assert_frame_equal (result , expected )
32+
2033 result = df1 .join (df2 , how = 'inner' )
21- expected = pd .DataFrame ({'a' : [20 , 10 ], 'b' : [200 , 100 ]}, index = [2 , 1 ])
22- self .assert_frame_equal (result , expected )
34+ expected = pd .DataFrame ({'a' : [20 , 10 ], 'b' : [200 , 100 ]},
35+ index = [2 , 1 ])
36+ tm .assert_frame_equal (result , expected )
37+
38+ result = df1 .join (df2 , how = 'outer' )
39+ expected = pd .DataFrame ({'a' : [0 , 10 , 20 , None ],
40+ 'b' : [None , 100 , 200 , 300 ]},
41+ index = [0 , 1 , 2 , 3 ])
42+ tm .assert_frame_equal (result , expected )
2343
2444 def test_join_index (self ):
2545 # left / right
@@ -28,35 +48,35 @@ def test_join_index(self):
2848 f2 = self .frame .loc [self .frame .index [5 :], ['C' , 'D' ]].iloc [::- 1 ]
2949
3050 joined = f .join (f2 )
31- self .assert_index_equal (f .index , joined .index )
51+ tm .assert_index_equal (f .index , joined .index )
3252 expected_columns = pd .Index (['A' , 'B' , 'C' , 'D' ])
33- self .assert_index_equal (joined .columns , expected_columns )
53+ tm .assert_index_equal (joined .columns , expected_columns )
3454
3555 joined = f .join (f2 , how = 'left' )
36- self .assert_index_equal (joined .index , f .index )
37- self .assert_index_equal (joined .columns , expected_columns )
56+ tm .assert_index_equal (joined .index , f .index )
57+ tm .assert_index_equal (joined .columns , expected_columns )
3858
3959 joined = f .join (f2 , how = 'right' )
40- self .assert_index_equal (joined .index , f2 .index )
41- self .assert_index_equal (joined .columns , expected_columns )
60+ tm .assert_index_equal (joined .index , f2 .index )
61+ tm .assert_index_equal (joined .columns , expected_columns )
4262
4363 # inner
4464
4565 joined = f .join (f2 , how = 'inner' )
46- self .assert_index_equal (joined .index , f .index [5 :10 ])
47- self .assert_index_equal (joined .columns , expected_columns )
66+ tm .assert_index_equal (joined .index , f .index [5 :10 ])
67+ tm .assert_index_equal (joined .columns , expected_columns )
4868
4969 # outer
5070
5171 joined = f .join (f2 , how = 'outer' )
52- self .assert_index_equal (joined .index , self .frame .index .sort_values ())
53- self .assert_index_equal (joined .columns , expected_columns )
72+ tm .assert_index_equal (joined .index , self .frame .index .sort_values ())
73+ tm .assert_index_equal (joined .columns , expected_columns )
5474
55- assertRaisesRegexp (ValueError , 'join method' , f .join , f2 , how = 'foo' )
75+ tm . assertRaisesRegexp (ValueError , 'join method' , f .join , f2 , how = 'foo' )
5676
5777 # corner case - overlapping columns
5878 for how in ('outer' , 'left' , 'inner' ):
59- with assertRaisesRegexp (ValueError , 'columns overlap but '
79+ with tm . assertRaisesRegexp (ValueError , 'columns overlap but '
6080 'no suffix' ):
6181 self .frame .join (self .frame , how = how )
6282
@@ -69,24 +89,24 @@ def test_join_index_more(self):
6989 expected ['D' ] = self .frame ['D' ][::2 ]
7090
7191 result = af .join (bf )
72- assert_frame_equal (result , expected )
92+ tm . assert_frame_equal (result , expected )
7393
7494 result = af .join (bf , how = 'right' )
75- assert_frame_equal (result , expected [::2 ])
95+ tm . assert_frame_equal (result , expected [::2 ])
7696
7797 result = bf .join (af , how = 'right' )
78- assert_frame_equal (result , expected .loc [:, result .columns ])
98+ tm . assert_frame_equal (result , expected .loc [:, result .columns ])
7999
80100 def test_join_index_series (self ):
81101 df = self .frame .copy ()
82102 s = df .pop (self .frame .columns [- 1 ])
83103 joined = df .join (s )
84104
85105 # TODO should this check_names ?
86- assert_frame_equal (joined , self .frame , check_names = False )
106+ tm . assert_frame_equal (joined , self .frame , check_names = False )
87107
88108 s .name = None
89- assertRaisesRegexp (ValueError , 'must have a name' , df .join , s )
109+ tm . assertRaisesRegexp (ValueError , 'must have a name' , df .join , s )
90110
91111 def test_join_overlap (self ):
92112 df1 = self .frame .loc [:, ['A' , 'B' , 'C' ]]
@@ -100,4 +120,4 @@ def test_join_overlap(self):
100120 expected = df1_suf .join (df2_suf ).join (no_overlap )
101121
102122 # column order not necessarily sorted
103- assert_frame_equal (joined , expected .loc [:, joined .columns ])
123+ tm . assert_frame_equal (joined , expected .loc [:, joined .columns ])
0 commit comments