code: def binary_op(self, op, other, **kwargs):
          
          func = getattr(pandas.DataFrame, op)
          return self._inter_df_op_handler(func, other, **kwargs)
docs: Perform an operation between two objects.
  
          Note: The list of operations is as follows:
              - add
              - eq
              - floordiv
              - ge
              - gt
              - le
              - lt
              - mod
              - mul
              - ne
              - pow
              - rfloordiv
              - rmod
              - rpow
              - rsub
              - rtruediv
              - sub
              - truediv
              - __and__
              - __or__
              - __xor__
          Args:
              op: The operation. See list of operations above
              other: The object to operate against.
  
          Returns:
              A new QueryCompiler object.