Функция assert_frame_equal
Функция assert_frame_equal применяется для проверки идентичности
двух объектов DataFrame. Она выбрасывает исключение, если
таблицы не совпадают. Функция полезна в тестировании для
проверки результатов работы кода. Основные параметры:
left и right - сравниваемые DataFrame,
check_dtype - проверять ли типы данных,
check_index_type - проверять ли типы индексов,
check_column_type - проверять ли типы столбцов.
Синтаксис
pd.testing.assert_frame_equal(left, right, check_dtype=True,
check_index_type=False, check_column_type=False)
Пример
Давайте сравним два идентичных DataFrame:
import pandas as pd
df1 = pd.DataFrame({
'a': [1, 2, 3],
'b': [4, 5, 6]
})
df2 = pd.DataFrame({
'a': [1, 2, 3],
'b': [4, 5, 6]
})
pd.testing.assert_frame_equal(df1, df2)
print("DataFrame are equal")
Результат выполнения кода:
"DataFrame are equal"
Пример
Сравним DataFrame с разными значениями. Функция выбросит исключение:
import pandas as pd
df1 = pd.DataFrame({
'a': [1, 2, 3],
'b': [4, 5, 6]
})
df2 = pd.DataFrame({
'a': [1, 2, 3],
'b': [4, 5, 7]
})
pd.testing.assert_frame_equal(df1, df2)
Результат выполнения кода:
"AssertionError: DataFrame.iloc[:, 1] (column name='b') are different"
Пример
Отключим проверку типов данных с помощью параметра check_dtype:
import pandas as pd
df1 = pd.DataFrame({
'a': [1, 2, 3],
'b': [4, 5, 6]
})
df2 = pd.DataFrame({
'a': [1, 2, 3],
'b': [4.0, 5.0, 6.0]
})
pd.testing.assert_frame_equal(df1, df2, check_dtype=False)
print("DataFrame are equal")
Результат выполнения кода:
"DataFrame are equal"
Пример
Используем параметр check_index_type для проверки типа индексов:
import pandas as pd
df1 = pd.DataFrame({
'a': [1, 2, 3],
'b': [4, 5, 6]
}, index=[0, 1, 2])
df2 = pd.DataFrame({
'a': [1, 2, 3],
'b': [4, 5, 6]
}, index=['0', '1', '2'])
pd.testing.assert_frame_equal(df1, df2, check_index_type=True)
Результат выполнения кода:
"AssertionError: Index type are different"
Смотрите также
-
функция
assert_series_equal,
которая сравнивает два объекта Series -
функция
assert_index_equal,
которая сравнивает два объекта Index -
функция
assert_frame_equal,
которая сравнивает два объекта DataFrame -
функция
assert_series_equal,
которая сравнивает два объекта Series