Возможно census_df получен через выборку части строк какого-то более крупного датафрей. Пандас в таком случае не копирует данные, а создаёт ссылку, те новый фрейм ссылается на старый. Может выбор части колонок из census_df в census_abs дает тот же эффект. Простой способ избежать проблемы - сделать всё-таки копию данных через метод copy() и менять её. Те например census_abs = census_df[columns_to_keep].copy()