Skip to main content
`Ctrl`+`K`

# pandas.Index.symmetric_difference

Index.symmetric_difference(other, result_name=None, sort=None)

  Compute the symmetric difference of two Index objects.

  The result contains elements that are in either of the two Index objects but not in their intersection. This is the set-theoretic symmetric difference, analogous to the `^` operator on Python sets.

  Parameters:
    other Index or array-like

      Index or an array-like object with elements to compute the symmetric difference with the original Index.

    result_name str

      A string representing the name of the resulting Index, if desired.

    sort bool or None, default None

      Whether to sort the resulting index. By default, the values are attempted to be sorted, but any TypeError from incomparable elements is caught by pandas.

      - None : Attempt to sort the result, but catch any TypeErrors from comparing incomparable elements.

      - False : Do not sort the result.

      - True : Sort the result (which may raise TypeError).

  Returns:
    Index

      Returns a new Index object containing elements that appear in either the original Index or the other Index, but not both.

  See also

  `Index.difference`

    Return a new Index with elements of index not in other.

  `Index.union`

    Form the union of two Index objects.

  `Index.intersection`

    Form the intersection of two Index objects.

  Notes

  `symmetric_difference` contains elements that appear in either `idx1` or `idx2` but not both. Equivalent to the Index created by `idx1.difference(idx2) | idx2.difference(idx1)` with duplicates dropped.

  Examples

      >>> idx1 = pd.Index([1, 2, 3, 4])
      >>> idx2 = pd.Index([2, 3, 4, 5])
      >>> idx1.symmetric_difference(idx2)
      Index([1, 5], dtype='int64')