Сравните два кадра данных

Вы можете объявить новую ссылку как псевдоним, например

int main (void)
{
    int v = 2; // local 
    int &vlocal = v;
    {
        int v = 3; // within subscope
        cout << "local: " << vlocal  << endl; 
    }
}

. Но я бы вообще избегал этой практики. Я потратил часы на отладку такой конструкции, потому что переменная была отображена в отладчике как измененная из-за области, и я не мог понять, как она изменилась.

0
задан Shanoo 27 February 2019 в 21:11
поделиться

3 ответа

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

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

0
ответ дан Hkk 27 February 2019 в 21:11
поделиться

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

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
0
ответ дан aws_apprentice 27 February 2019 в 21:11
поделиться

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

0
ответ дан ralex 27 February 2019 в 21:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: