Вы можете объявить новую ссылку как псевдоним, например
int main (void)
{
int v = 2; // local
int &vlocal = v;
{
int v = 3; // within subscope
cout << "local: " << vlocal << endl;
}
}
. Но я бы вообще избегал этой практики. Я потратил часы на отладку такой конструкции, потому что переменная была отображена в отладчике как измененная из-за области, и я не мог понять, как она изменилась.
Вы должны проверить ответ Энди Хейдена здесь: Выводить разницу в двух кадрах данных Pandas бок о бок - выделять разницу
, что вы пытаетесь сделать (вывести ошибку, если строка отличается ) не может быть лучшим вариантом здесь. Какой фрейм данных вы собираетесь использовать в качестве основы для сравнения и добавить столбец ошибок? предположим, что вы выбрали df1 и сравнили его с df2, что если df2 имеет дополнительные строки, которых нет в df1; в этом случае в df1 нет строки для добавления сообщения об ошибке.
Вы взглянули на документацию ?
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
Мне нравится ответ @ aws_apprentice. Но, поскольку вы попросили «напечатать ошибку», рассмотрите также pandas.testing.assert_frame_equal
(документы) , что вызовет исключение AssertionError
, если кадры данных не идентичны, и даст вам диагностический вывод.