Python панды: assert_frame_equal - PullRequest
       7

Python панды: assert_frame_equal

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

У меня есть 2 df (назовите их bdf и cdf) для сравнения, чтобы убедиться, что их содержимое одинаково.Поэтому я использовал

pd.util.testing.assert_frame_equal(bdf, cdf, check_dtype=False, check_like=True, check_exact=True)

, чтобы сделать сравнение.Однако функция выявила разницу в столбце, которую я не ожидал:

DataFrame.iloc[:, 70] are different

DataFrame.iloc[:, 70] values are different (100.0 %)
[left]:  [201801300040150000014217, 201801300040150000014217, 201801300040150000013737, 201801290040150000019605, 201801300040150000076982, 201801300040150000136588, 201801300040150000242399, 201801300040150000293800, 201801300040150000293801, 201801290040150000128792, 201801300040150000367067, 201801300040150000367770, 201801300040150000369255, 201801260040150000097789, 0, 0, 201801290040150000145140, 0, 201801290040150000145184, 201801290040150000145190, 201801290040150000145198, 201801290040150000145206, 201801290040150000145214, 201801290040150000145222, 0, 0, 201801290040150000145245, 201801290040150000145254, 201801290040150000145263, 201801290040150000145271, 201801290040150000145278, 201801290040150000145286, 201801290040150000145297, 201801290040150000145309, 201801290040150000145318, 201801290040150000145327, 201801290040150000149263, 201801290040150000149264, 201801300040150000433569, 201801290040150000156348, 201801290040150000161046, 201801290040150000161050, 201801290040150000165445, 0, 201801290040150000165456, 201801290040150000165472, 0, 0, 201801290040150000165496, 0, 0, 201801290040150000165520, 0, 0, 0, 201801290040150000165556, 0, 201801260040150000129418]
[right]: [201801300040150000014217, 201801300040150000014217, 201801300040150000013737, 201801290040150000019605, 201801300040150000076982, 201801300040150000136588, 201801300040150000242399, 201801300040150000293800, 201801300040150000293801, 201801290040150000128792, 201801300040150000367067, 201801300040150000367770, 201801300040150000369255, 201801260040150000097789, 0, 0, 201801290040150000145140, 0, 201801290040150000145184, 201801290040150000145190, 201801290040150000145198, 201801290040150000145206, 201801290040150000145214, 201801290040150000145222, 0, 0, 201801290040150000145245, 201801290040150000145254, 201801290040150000145263, 201801290040150000145271, 201801290040150000145278, 201801290040150000145286, 201801290040150000145297, 201801290040150000145309, 201801290040150000145318, 201801290040150000145327, 201801290040150000149263, 201801290040150000149264, 201801300040150000433569, 201801290040150000156348, 201801290040150000161046, 201801290040150000161050, 201801290040150000165445, 0, 201801290040150000165456, 201801290040150000165472, 0, 0, 201801290040150000165496, 0, 0, 201801290040150000165520, 0, 0, 0, 201801290040150000165556, 0, 201801260040150000129418]

Визуально они не выглядят иначе.Когда я распечатываю значение и dtype:

print "bdf: {}, type {}".format(bdf['refid'][0], bdf['refid'].dtype)
print "cdf: {}, type {}".format(cdf['refid'][0], cdf['refid'].dtype)

, я получаю:

bdf: 201801300040150000014217, type object
cdf: 201801300040150000014217, type object

Так почему же assert_frame_equal () говорит, что они разные, когда их значения и dtypes являютсятак же?Как наблюдение, в этих двух таблицах более 200 столбцов, и все они также являются dtype = object, но я не получил никаких ошибок сравнения для этих столбцов.

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