code: def symmetric_difference(self, other, result_name=None, sort=None):
          self._validate_sort_keyword(sort)
          self._assert_can_do_setop(other)
          other, result_name_update = self._convert_can_do_setop(other)
          if result_name is None:
              result_name = result_name_update
          this = self._get_unique_index()
          other = other._get_unique_index()
          indexer = this.get_indexer(other)
          common_indexer = indexer.take((indexer != -1).nonzero()[0])
          left_indexer = np.setdiff1d(np.arange(this.size), common_indexer,
                                      assume_unique=True)
          left_diff = this.values.take(left_indexer)
          right_indexer = (indexer == -1).nonzero()[0]
          right_diff = other.values.take(right_indexer)
          the_diff = _concat._concat_compat([left_diff, right_diff])
          if sort is None:
              try:
                  the_diff = sorting.safe_sort(the_diff)
              except TypeError:
                  pass
          attribs = self._get_attributes_dict()
          attribs['name'] = result_name
          if 'freq' in attribs:
              attribs['freq'] = None
          return self._shallow_copy_with_infer(the_diff, **attribs)