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_names=True, by_blocks=False, check_exact=_NoDefault.no_default, check_datetimelike_compat=False, check_categorical=True, check_like=False, check_freq=True, check_flags=True, rtol=_NoDefault.no_default, atol=_NoDefault.no_default, obj='DataFrame')[source]
-
Проверяет, что DataFrame слева и справа равны.
Эта функция предназначена для сравнения двух DataFrame и вывода любых различий. Она в основном предназначена для использования в модульных тестах. Дополнительные параметры позволяют изменять строгость проводимых проверок равенства.
- Параметры:
-
- left:DataFrame
-
Первый DataFrame для сравнения.
- right:DataFrame
-
Второй DataFrame для сравнения.
- check_dtype:bool, по умолчанию True
-
Надо ли проверять, что dtype DataFrame идентичен.
- check_index_type:bool или {‘equiv’}, по умолчанию ‘equiv’
-
Надо ли проверять, что класс Index, dtype и inferred_type идентичны.
- check_column_type:bool или {‘equiv’}, по умолчанию ‘equiv’
-
Надо ли проверять, что класс столбцов, dtype и inferred_type идентичны. Передается как аргумент
exactфункцииassert_index_equal(). - check_frame_type:bool, по умолчанию True
-
Надо ли проверять, что класс DataFrame идентичен.
- check_names:bool, по умолчанию True
-
Надо ли проверять, что атрибут names для атрибутов index и column DataFrame идентичен.
- by_blocks:bool, по умолчанию False
-
Указывает, как сравнивать внутренние данные. Если False, сравнивать по столбцам. Если True, сравнивать по блокам.
- check_exact:bool, по умолчанию False
-
Надо ли сравнивать числа точно.
Изменено в версии 2.2.0: По умолчанию True для целочисленных типов, если ни
check_exact,rtolиatolне указаны. - check_datetimelike_compat:bool, по умолчанию False
-
Сравнивать datetime-подобные, игнорируя dtype.
- check_categorical:bool, по умолчанию True
-
Надо ли сравнивать внутренние Categorical точно.
- check_like:bool, по умолчанию False
-
Если True, игнорировать порядок индекса и столбцов. Примечание: метки индекса должны совпадать с соответствующими строками (так же как и в столбцах) - одинаковые метки должны быть с одинаковыми данными.
- check_freq:bool, по умолчанию True
-
Надо ли проверять атрибут freq в DatetimeIndex или TimedeltaIndex.
- check_flags:bool, по умолчанию True
-
Надо ли проверять атрибут flags.
- rtol:float, по умолчанию 1e-5
-
Относительная погрешность. Используется только при check_exact = False.
- atol:float, по умолчанию 1e-8
-
Абсолютная погрешность. Используется только при check_exact = False.
- obj:str, по умолчанию ‘DataFrame’
-
Указывает имя сравниваемого объекта, используется внутри для отображения соответствующего сообщения об утверждении.
См. также
assert_series_equal-
Эквивалентный метод для проверки равенства Series.
DataFrame.equals-
Проверка равенства DataFrame.
Примеры
В этом примере показано сравнение двух DataFrame, которые равны, но со столбцами разных типов данных.
>>> from pandas.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 of DataFrame.iloc[:, 1] (column name="b") are different
Атрибут “dtype” отличается [left]: int64 [right]: float64
Игнорировать различающиеся типы данных в столбцах с помощью check_dtype.
>>> assert_frame_equal(df1, df2, check_dtype=False)
© 2008–2022, 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/2.2.2/reference/api/pandas.testing.assert_frame_equal.html