В чем разница между `assert_frame_equal` и` equals` - PullRequest
0 голосов
/ 25 июня 2018

Мне любопытно найти разницу между assert_frame_equal и equal. Оба предназначены для проверки равенства двух данных. Это относится к assert_series_equal и assert_index_equal. Так в чем же разница между функциями равенства и тестирования?

До сих пор я обнаружил, что тестирование функций дает немного больше гибкости для сравнения значений, таких как check_dtpye опции и т. Д., И отличается от возвращаемых значений. Это единственная разница между ними?

или иначе, когда я должен использовать функции тестирования, отличные от метода equals?

df1=pd.DataFrame({'a':[1,2,3,4,5],'b':[6,7,8,9,10]})
df2=pd.DataFrame({'a':[1,2,3,4,5],'b':[6,7,8,9,10]})
pd.testing.assert_frame_equal(df1,df2)
print df1.equals(df2)

pd.testing.assert_series_equal(df1['a'],df2['a'])
print df1['a'].equals(df2['a'])

pd.testing.assert_index_equal(df1.index,df2.index)
print df1.index.equals(df2.index)

1 Ответ

0 голосов
/ 25 июня 2018

assert_frame_equal выдает AssertionError, когда два кадра данных не равны.

>>> pd.testing.assert_frame_equal(df1, df2)
>>> pd.testing.assert_frame_equal(df1, pd.DataFrame())
AssertionError       

DataFrame.equals просто возвращает логическое значение True / False.

>>> df1.equals(df2)
True
>>> df1.equals(pd.DataFrame())
False    

Это также относится и к другим функциям, определенным в pd.testing, которые используются для разработки модульных тестов для кода панд.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...