@@ -245,6 +245,12 @@ class _TimeOp(object):
245245 def __init__ (self , left , right , name ):
246246 self .name = name
247247
248+ # need to make sure that we are aligning the data
249+ if isinstance (left , pd .Series ) and isinstance (right , pd .Series ):
250+ left , right = left .align (right )
251+
252+ self .left = left
253+ self .right = right
248254 lvalues = self ._convert_to_array (left , name = name )
249255 rvalues = self ._convert_to_array (right , name = name , other = lvalues )
250256
@@ -426,6 +432,7 @@ def maybe_convert_for_time_op(cls, left, right, name):
426432 is_datetime_lhs = com .is_datetime64_dtype (left )
427433 if not (is_datetime_lhs or is_timedelta_lhs ):
428434 return None
435+
429436 # rops are allowed. No need for special checks, just strip off
430437 # r part.
431438 if name .startswith ('__r' ):
@@ -463,6 +470,7 @@ def wrapper(left, right, name=name):
463470
464471 if isinstance (right , pd .DataFrame ):
465472 return NotImplemented
473+
466474 time_converted = _TimeOp .maybe_convert_for_time_op (left , right , name )
467475
468476 if time_converted is None :
@@ -472,8 +480,8 @@ def wrapper(left, right, name=name):
472480 elif time_converted == NotImplemented :
473481 return NotImplemented
474482 else :
475- lvalues = time_converted .lvalues
476- rvalues = time_converted .rvalues
483+ left , right = time_converted .left , time_converted . right
484+ lvalues , rvalues = time_converted . lvalues , time_converted .rvalues
477485 dtype = time_converted .dtype
478486 wrap_results = time_converted .wrap_results
479487
0 commit comments