@@ -596,7 +596,11 @@ def __init__(
596
596
self .left = self .orig_left = _left
597
597
self .right = self .orig_right = _right
598
598
self .how = how
599
- self .axis = axis
599
+
600
+ # bm_axis -> the axis on the BlockManager
601
+ self .bm_axis = axis
602
+ # axis --> the axis on the Series/DataFrame
603
+ self .axis = 1 - axis if self .left .ndim == 2 else 0
600
604
601
605
self .on = com .maybe_make_list (on )
602
606
self .left_on = com .maybe_make_list (left_on )
@@ -664,18 +668,17 @@ def get_result(self):
664
668
665
669
join_index , left_indexer , right_indexer = self ._get_join_info ()
666
670
667
- ldata , rdata = self .left ._data , self .right ._data
668
671
lsuf , rsuf = self .suffixes
669
672
670
673
llabels , rlabels = _items_overlap_with_suffix (
671
- ldata . items , lsuf , rdata . items , rsuf
674
+ self . left . _info_axis , lsuf , self . right . _info_axis , rsuf
672
675
)
673
676
674
677
lindexers = {1 : left_indexer } if left_indexer is not None else {}
675
678
rindexers = {1 : right_indexer } if right_indexer is not None else {}
676
679
677
680
result_data = concatenate_block_managers (
678
- [(ldata , lindexers ), (rdata , rindexers )],
681
+ [(self . left . _data , lindexers ), (self . right . _data , rindexers )],
679
682
axes = [llabels .append (rlabels ), join_index ],
680
683
concat_axis = 0 ,
681
684
copy = self .copy ,
@@ -864,8 +867,8 @@ def _get_join_indexers(self):
864
867
)
865
868
866
869
def _get_join_info (self ):
867
- left_ax = self .left ._data . axes [self .axis ]
868
- right_ax = self .right ._data . axes [self .axis ]
870
+ left_ax = self .left .axes [self .axis ]
871
+ right_ax = self .right .axes [self .axis ]
869
872
870
873
if self .left_index and self .right_index and self .how != "asof" :
871
874
join_index , left_indexer , right_indexer = left_ax .join (
@@ -1478,12 +1481,10 @@ def __init__(
1478
1481
def get_result (self ):
1479
1482
join_index , left_indexer , right_indexer = self ._get_join_info ()
1480
1483
1481
- # this is a bit kludgy
1482
- ldata , rdata = self .left ._data , self .right ._data
1483
1484
lsuf , rsuf = self .suffixes
1484
1485
1485
1486
llabels , rlabels = _items_overlap_with_suffix (
1486
- ldata . items , lsuf , rdata . items , rsuf
1487
+ self . left . _info_axis , lsuf , self . right . _info_axis , rsuf
1487
1488
)
1488
1489
1489
1490
if self .fill_method == "ffill" :
@@ -1497,7 +1498,7 @@ def get_result(self):
1497
1498
rindexers = {1 : right_join_indexer } if right_join_indexer is not None else {}
1498
1499
1499
1500
result_data = concatenate_block_managers (
1500
- [(ldata , lindexers ), (rdata , rindexers )],
1501
+ [(self . left . _data , lindexers ), (self . right . _data , rindexers )],
1501
1502
axes = [llabels .append (rlabels ), join_index ],
1502
1503
concat_axis = 0 ,
1503
1504
copy = self .copy ,
0 commit comments