Столбец жизненно важен для выполнения вашей программы, поэтому вы хотите, чтобы он умер, если он не существует.
df["column"] = df[["column1", "column2"]].apply(self._func, axis=1)
это вызовет KeyError, если column1 или column2 не существует.
if "vidcolumn1" in df.columns and "column2" in df.columns:
df["column"] = df[["column1", "column2"]].apply(self._func, axis=1)
else:
raise ValueError("Column1 and Column2 are required for ...")
Кажется, что это не дает ничего полезного, если только вы не хотите что-то делать в другой части, например, регистрировать ошибку где-то еще в ваших журналах.
Так что если выу вас нет запасного варианта для вашей программы в случае отсутствия столбца, есть ли смысл использовать второй вариант?