В питоне есть 3 варианта создания переменной с тем же содержимым как у другой:
Присваивание - создает ссылку на тот же объект
Метод .copy() - создает копию объекта верхнего уровня, например может создать такой же список. Но если дан список списков, то такое копирование оставит ссылки на вложенные списки общими
deepcopy из библиотеки copy - полностью копирует объект со всем вложенным содержимым
Исправление:
import pandas as pd
Import copy
init_df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]}) # инициализируем датафрейм с исходными данными
df_for_tests = init_df.copy() # делаем копию начального датафрейма чтобы на ней проводить наши тесты
df_for_tests['A'] = 0