code: def train_df(self, df, drop=False):
          
          if (len(df) == 0) or (len(self) == 0):
              return df
  
          # Each scale trains the columns it understands
          for sc in self:
              sc.train_df(df)
          return df
docs: Train scales from a dataframe