@@ -77,7 +77,7 @@ def get_result(self):
77
77
join_index , left_indexer , right_indexer = self ._get_join_info ()
78
78
79
79
# this is a bit kludgy
80
- ldata , rdata = self ._get_merge_data (self . join_names )
80
+ ldata , rdata = self ._get_merge_data ()
81
81
82
82
# TODO: more efficiently handle group keys to avoid extra consolidation!
83
83
join_op = _BlockJoinOperation ([ldata , rdata ], join_index ,
@@ -154,13 +154,19 @@ def _get_join_info(self):
154
154
155
155
return join_index , left_indexer , right_indexer
156
156
157
- def _get_merge_data (self , join_names ):
157
+ def _get_merge_data (self ):
158
158
"""
159
159
Handles overlapping column names etc.
160
160
"""
161
161
ldata , rdata = self .left ._data , self .right ._data
162
162
lsuf , rsuf = self .suffixes
163
- exclude_names = [x for x in join_names if x is not None ]
163
+ exclude_names = set (x for x in self .join_names if x is not None )
164
+ if self .left_on is not None :
165
+ exclude_names -= set (c .name if hasattr (c , 'name' ) else c
166
+ for c in self .left_on )
167
+ if self .right_on is not None :
168
+ exclude_names -= set (c .name if hasattr (c , 'name' ) else c
169
+ for c in self .right_on )
164
170
ldata , rdata = ldata ._maybe_rename_join (rdata , lsuf , rsuf ,
165
171
exclude = exclude_names ,
166
172
copydata = False )
0 commit comments