pandas.testing.assert_frame_equal
-
pandas.testing.assert_frame_equal(left, right, check_dtype=True, check_index_type='equiv', check_column_type='equiv', check_frame_type=True, check_less_precise=False, check_names=True, by_blocks=False, check_exact=False, check_datetimelike_compat=False, check_categorical=True, check_like=False, obj='DataFrame')[source] -
Проверка равенства двух DataFrame.
Эта функция предназначена для сравнения двух DataFrame и вывода любых различий. Она в основном предназначена для использования в модульных тестах. Дополнительные параметры позволяют изменять строгость проверок равенства.
Параметры: -
left : DataFrame -
Первый DataFrame для сравнения.
-
right : DataFrame -
Второй DataFrame для сравнения.
-
check_dtype : bool, default True -
Необходимо ли проверять идентичность типа данных DataFrame.
-
check_index_type : bool / string {‘equiv’}, default ‘equiv’ -
Необходимо ли проверять идентичность класса, типа данных и inferred_type индекса.
-
check_column_type : bool / string {‘equiv’}, default ‘equiv’ -
Необходимо ли проверять идентичность класса, типа данных и inferred_type столбцов. Передаётся как параметр
exactфункцииassert_index_equal(). -
check_frame_type : bool, default True -
Необходимо ли проверять идентичность класса DataFrame.
-
check_less_precise : bool or int, default False -
Укажите точность сравнения. Используется только тогда, когда check_exact равен False. Сравниваются 5 знаков (False) или 3 знака (True) после запятой. Если целое число, то укажите количество знаков для сравнения.
При сравнении двух чисел, если первое число имеет величину меньше 1e-5, мы сравниваем числа напрямую и проверяем, эквивалентны ли они с заданной точностью. В противном случае мы сравниваем **отношение** второго числа к первому и проверяем, эквивалентно ли оно 1 с заданной точностью.
-
check_names : bool, default True -
Необходимо ли проверить, что атрибут
namesдля атрибутовindexиcolumnDataFrame идентичны, т.е.- left.index.names == right.index.names
- left.columns.names == right.columns.names
-
by_blocks : bool, default False -
Укажите способ сравнения внутренних данных. Если False, сравнивать по столбцам. Если True, сравнивать по блокам.
-
check_exact : bool, default False -
Необходимо ли сравнивать числа точно.
-
check_datetimelike_compat : bool, default False -
Сравнивать datetime-подобные объекты, игнорируя тип данных.
-
check_categorical : bool, default True -
Необходимо ли сравнивать внутренние Categorical объекты точно.
-
check_like : bool, default False -
Если True, игнорировать порядок индекса и столбцов. Примечание: метки индекса должны соответствовать соответствующим строкам (так же как и в столбцах) - одинаковые метки должны быть с одинаковыми данными.
-
obj : str, default ‘DataFrame’ -
Укажите имя сравниваемого объекта, используется внутри для отображения соответствующего сообщения об утверждении.
См. также
-
assert_series_equal - Эквивалентный метод для проверки равенства Series.
-
DataFrame.equals - Проверка равенства DataFrame.
Примеры
Этот пример показывает сравнение двух DataFrame, которые равны, но имеют столбцы с различными типами данных.
>>> from pandas.util.testing import assert_frame_equal >>> df1 = pd.DataFrame({'a': [1, 2], 'b': [3, 4]}) >>> df2 = pd.DataFrame({'a': [1, 2], 'b': [3.0, 4.0]})df1 равен самому себе.
>>> assert_frame_equal(df1, df1)
df1 отличается от df2, так как столбец «b» имеет другой тип.
>>> assert_frame_equal(df1, df2) Traceback (most recent call last): AssertionError: Attributes are different ... Attribute "dtype" are different [left]: int64 [right]: float64
Игнорировать различия в типах данных столбцов с check_dtype.
>>> assert_frame_equal(df1, df2, check_dtype=False)
-
© 2008–2012, AQR Capital Management, LLC, Lambda Foundry, Inc. and PyData Development Team
Licensed under the 3-clause BSD License.
https://pandas.pydata.org/pandas-docs/version/0.25.0/reference/api/pandas.testing.assert_frame_equal.html