Сравните два кадра данных - PullRequest
0 голосов
/ 28 февраля 2019

У меня есть два кадра данных, как показано ниже: я хочу сравнить два кадра данных строка за строкой, и если предположить, что строка 1 в df1 не равна строке 1 в df2, выведите ошибку

df1

    A     B  
0   1     3
1   2     4 
2   3     5 
3   4     6 
4   5     7 

df2

    A     B  
0   1     3
1   2     4 
2   3     5 
3   4     5
4   5     7

Я хочу напечатать ошибкудля строки № 4, потому что df1 имеет значение 6 для переменной 'B', а df1 имеет значение 5

Ответы [ 3 ]

0 голосов
/ 28 февраля 2019

Мне нравится ответ @ aws_apprentice.Но, поскольку вы попросили «напечатать ошибку», рассмотрите также pandas.testing.assert_frame_equal (документы) , что вызовет исключение AssertionError, если кадры данных не идентичны, и даст вам диагностический вывод.

0 голосов
/ 28 февраля 2019

Вы должны проверить ответ Энди Хейдена здесь: Выводить разницу в двух кадрах данных Pandas бок о бок - выделять разницу

что вы пытаетесь сделать (вывести ошибку, если строка отличается) не может быть лучшим вариантом здесь.Какой фрейм данных вы собираетесь использовать в качестве основы для сравнения и добавить столбец ошибок?предположим, что вы выбрали df1 и сравнили его с df2, что если df2 имеет дополнительные строки, которых нет в df1;в этом случае в df1 нет строки для добавления сообщения об ошибке.

0 голосов
/ 28 февраля 2019

Вы взглянули на документацию ?

df1.eq(df2)

      A      B
0  True   True
1  True   True
2  True   True
3  True  False
4  True   True

Если вы хотите увидеть конкретные значения и строки, вы можете сделать это

df1[~df1.eq(df2)].dropna(how='all')

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