File tree Expand file tree Collapse file tree 3 files changed +19
-2
lines changed
Expand file tree Collapse file tree 3 files changed +19
-2
lines changed Original file line number Diff line number Diff line change @@ -358,7 +358,7 @@ Bug Fixes
358358
359359
360360
361-
361+ - Bug in ``pd.merge_asof()`` where ``left_index``/``right_index`` together caused a failure when ``tolerance`` was specified (:issue:`15135`)
362362
363363
364364
Original file line number Diff line number Diff line change @@ -1129,7 +1129,11 @@ def _get_merge_keys(self):
11291129 # validate tolerance; must be a Timedelta if we have a DTI
11301130 if self .tolerance is not None :
11311131
1132- lt = left_join_keys [- 1 ]
1132+ if self .left_index :
1133+ lt = self .left .index
1134+ else :
1135+ lt = left_join_keys [- 1 ]
1136+
11331137 msg = "incompatible tolerance, must be compat " \
11341138 "with type {0}" .format (type (lt ))
11351139
Original file line number Diff line number Diff line change @@ -518,6 +518,19 @@ def test_tolerance_tz(self):
518518 'value2' : list ("BCDEE" )})
519519 assert_frame_equal (result , expected )
520520
521+ def test_index_tolerance (self ):
522+ # GH 15135
523+ expected = self .tolerance .set_index ('time' )
524+ trades = self .trades .set_index ('time' )
525+ quotes = self .quotes .set_index ('time' )
526+
527+ result = pd .merge_asof (trades , quotes ,
528+ left_index = True ,
529+ right_index = True ,
530+ by = 'ticker' ,
531+ tolerance = pd .Timedelta ('1day' ))
532+ assert_frame_equal (result , expected )
533+
521534 def test_allow_exact_matches (self ):
522535
523536 result = merge_asof (self .trades , self .quotes ,
You can’t perform that action at this time.
0 commit comments