docs: def recode(self, table: pd.DataFrame, validate=False) -> pd.DataFrame:
          """Return a fully recoded dataframe.
  
          Args:
              table (pd.DataFrame): A dataframe on which to apply recoding logic.
              validate (bool): If ``True``, recoded table must pass validation tests.
          """
          df = pd.DataFrame(index=table.index)
  
          for column in self.columns:
              df = column.update_dataframe(df, table=table, validate=validate)
  
          return df