Метод equals
Метод equals применяется к DataFrame
и позволяет проверить, идентичен ли переданный объект
исходному. В отличие от оператора ==, который
сравнивает поэлементно и не учитывает структуру,
equals сравнивает форму, индексы, названия
столбцов и данные, возвращая одно логическое значение.
Метод принимает один обязательный параметр
other - объект для сравнения.
Синтаксис
df.equals(other)
Пример
Сравним две идентичные таблицы:
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]
})
res = df1.equals(df2)
print(res)
Результат выполнения кода:
True
Пример
Метод возвращает False, если данные отличаются
хотя бы в одной ячейке:
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]
})
res = df1.equals(df2)
print(res)
Результат выполнения кода:
False
Пример
Разные индексы делают объекты неэквивалентными, даже если данные одинаковы:
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=[1, 2, 3])
res = df1.equals(df2)
print(res)
Результат выполнения кода:
False
Пример
Метод чувствителен к порядку строк и столбцов. Даже переставленные местами столбцы считаются разными объектами:
import pandas as pd
df1 = pd.DataFrame({
'a': [1, 2, 3],
'b': [4, 5, 6]
})
df2 = pd.DataFrame({
'b': [4, 5, 6],
'a': [1, 2, 3]
})
res = df1.equals(df2)
print(res)
Результат выполнения кода:
False
Пример
Если типы данных в столбцах отличаются, метод
также вернёт False, даже если значения
выглядят одинаково:
import pandas as pd
df1 = pd.DataFrame({
'a': [1, 2, 3],
'b': [4, 5, 6]
}, dtype='int64')
df2 = pd.DataFrame({
'a': [1.0, 2.0, 3.0],
'b': [4.0, 5.0, 6.0]
}, dtype='float64')
res = df1.equals(df2)
print(res)
Результат выполнения кода:
False