Функция assert_index_equal
Функция assert_index_equal из модуля pandas.testing
проверяет два объекта Index на равенство.
Она используется в тестах для подтверждения того,
что индексы идентичны по значениям и типам данных.
Если индексы не равны, функция выбрасывает исключение
AssertionError с подробным описанием различий.
Основные параметры функции:
-
leftиright- сравниваемые индексы -
check_exact- проверяет точное соответствие (по умолчаниюTrue) -
check_names- проверяет совпадение имён (по умолчаниюTrue) -
check_order- проверяет порядок элементов (по умолчаниюTrue)
Синтаксис
from pandas.testing import assert_index_equal
assert_index_equal(left, right, check_exact=True, check_names=True, check_order=True)
Пример
Сравним два идентичных индекса:
import pandas as pd
from pandas.testing import assert_index_equal
idx1 = pd.Index([1, 2, 3, 4, 5])
idx2 = pd.Index([1, 2, 3, 4, 5])
assert_index_equal(idx1, idx2)
print("Индексы равны")
Результат выполнения кода:
"Индексы равны"
Пример
Попробуем сравнить индексы с разными значениями:
import pandas as pd
from pandas.testing import assert_index_equal
idx1 = pd.Index([1, 2, 3, 4, 5])
idx2 = pd.Index([1, 2, 3, 4, 6])
assert_index_equal(idx1, idx2)
Результат выполнения кода:
"AssertionError: Index are different"
Пример
Отключим проверку порядка элементов:
import pandas as pd
from pandas.testing import assert_index_equal
idx1 = pd.Index([1, 2, 3, 4, 5])
idx2 = pd.Index([5, 4, 3, 2, 1])
assert_index_equal(idx1, idx2, check_order=False)
print("Индексы равны без учёта порядка")
Результат выполнения кода:
"Индексы равны без учёта порядка"
Пример
Проверим индексы с разными именами:
import pandas as pd
from pandas.testing import assert_index_equal
idx1 = pd.Index([1, 2, 3, 4, 5], name='a')
idx2 = pd.Index([1, 2, 3, 4, 5], name='b')
assert_index_equal(idx1, idx2)
Результат выполнения кода:
"AssertionError: Index names are different"
Пример
Отключим проверку имён индексов:
import pandas as pd
from pandas.testing import assert_index_equal
idx1 = pd.Index([1, 2, 3, 4, 5], name='a')
idx2 = pd.Index([1, 2, 3, 4, 5], name='b')
assert_index_equal(idx1, idx2, check_names=False)
print("Индексы равны без проверки имён")
Результат выполнения кода:
"Индексы равны без проверки имён"
Смотрите также
-
функция
assert_frame_equal,
которая сравнивает два DataFrame -
функция
assert_series_equal,
которая сравнивает две Series -
метод
equals,
который проверяет равенство объектов без выброса исключения -
метод
sort_index,
который сортирует индекс перед сравнением