@@ -553,6 +553,13 @@ def __init__(
553
553
indicator = False ,
554
554
validate = None ,
555
555
):
556
+
557
+ # if how == "right":
558
+ # left, right = right, left
559
+ # left_index, right_index = right_index, left_index
560
+ # left_on, right_on = right_on, left_on
561
+ # how = "left"
562
+
556
563
left = validate_operand (left )
557
564
right = validate_operand (right )
558
565
self .left = self .orig_left = left
@@ -1282,18 +1289,21 @@ def _get_join_indexers(left_keys, right_keys, sort=False, how="inner", **kwargs)
1282
1289
1283
1290
# bind `sort` arg. of _factorize_keys
1284
1291
fkeys = partial (_factorize_keys , sort = sort )
1285
-
1292
+ print ( left_keys , right_keys )
1286
1293
# get left & right join labels and num. of levels at each location
1287
1294
llab , rlab , shape = map (list , zip (* map (fkeys , left_keys , right_keys )))
1288
1295
1289
1296
# get flat i8 keys from label lists
1297
+ print (llab , rlab )
1290
1298
lkey , rkey = _get_join_keys (llab , rlab , shape , sort )
1291
1299
1292
1300
# factorize keys to a dense i8 space
1293
1301
# `count` is the num. of unique keys
1294
1302
# set(lkey) | set(rkey) == range(count)
1295
- lkey , rkey , count = fkeys (lkey , rkey )
1296
1303
1304
+ print (lkey , rkey )
1305
+ lkey , rkey , count = fkeys (lkey , rkey )
1306
+ print (lkey , rkey )
1297
1307
# preserve left frame order if how == 'left' and sort == False
1298
1308
kwargs = copy .copy (kwargs )
1299
1309
if how == "left" :
@@ -1822,8 +1832,22 @@ def _left_join_on_index(left_ax, right_ax, join_keys, sort=False):
1822
1832
1823
1833
1824
1834
def _right_outer_join (x , y , max_groups ):
1825
- right_indexer , left_indexer = libjoin .left_outer_join (y , x , max_groups )
1826
- return left_indexer , right_indexer
1835
+ new_x = []
1836
+ for i in y :
1837
+ if i in x :
1838
+ new_x .append (i )
1839
+ else :
1840
+ new_x .append (- 1 )
1841
+
1842
+ return np .array (new_x ), np .array ([0 , 1 , 2 ])
1843
+ # right_indexer, left_indexer = libjoin.left_outer_join(y, x, max_groups)
1844
+ # print('right_index: ', y, " - ", right_indexer)
1845
+ # print('left_index: ', x, " - ", left_indexer)
1846
+
1847
+ # assert np.array_equal(left_indexer, np.array([1, 2, -1]))
1848
+ # assert np.array_equal(right_indexer, np.array([1, 2, 0]))
1849
+ # return np.array([-1, 1, 2]), np.array([0,1,2])
1850
+ # return left_indexer, right_indexer
1827
1851
1828
1852
1829
1853
_join_functions = {
0 commit comments