Метод symmetric_difference
Метод symmetric_difference применяется к объекту Index
и возвращает новый индекс, содержащий симметричную разность
между текущим индексом и другим переданным индексом.
Это значит, что в результат попадают все элементы,
которые есть только в одном из индексов, но не в обоих.
Первым параметром передаётся другой индекс для сравнения,
вторым параметром можно указать сортировку результата.
Синтаксис
index.symmetric_difference(other, sort=None)
Пример
Давайте найдём симметричную разность двух индексов с числами, где часть элементов совпадает:
import pandas as pd
idx1 = pd.Index([1, 2, 3, 4])
idx2 = pd.Index([3, 4, 5, 6])
res = idx1.symmetric_difference(idx2)
print(res)
Результат выполнения кода:
Index([1, 2, 5, 6], dtype='int64')
В результате получились элементы 1 и 2,
которые есть только в первом индексе, а также
элементы 5 и 6, которые есть только
во втором индексе.
Пример
Симметричная разность работает и с индексами, содержащими строки:
import pandas as pd
idx1 = pd.Index(['a', 'b', 'c'])
idx2 = pd.Index(['c', 'd', 'e'])
res = idx1.symmetric_difference(idx2)
print(res)
Результат выполнения кода:
Index(['a', 'b', 'd', 'e'], dtype='object')
Пример
Рассмотрим случай, когда индексы полностью совпадают. В этом случае симметричная разность будет пустой:
import pandas as pd
idx1 = pd.Index([1, 2, 3])
idx2 = pd.Index([1, 2, 3])
res = idx1.symmetric_difference(idx2)
print(res)
Результат выполнения кода:
Index([], dtype='int64')
Пример
Параметр sort позволяет управлять сортировкой
результата. По умолчанию значения не сортируются,
если индексы не отсортированы. Давайте явно укажем
сортировку результата:
import pandas as pd
idx1 = pd.Index([4, 1, 3])
idx2 = pd.Index([2, 3, 5])
res = idx1.symmetric_difference(idx2, sort=True)
print(res)
Результат выполнения кода:
Index([1, 2, 4, 5], dtype='int64')
Смотрите также
-
метод
difference,
который возвращает разность двух индексов -
метод
union,
который объединяет элементы двух индексов -
метод
intersection,
который возвращает пересечение двух индексов -
класс
Index,
который представляет собой неизменяемую последовательность