class_docstr: (Sep)erate DataFrame
  We usually concat multiple dataframe to be processed together(Such as feature, label, weight, filter).
  However, they are usually be used separately at last.
  This will result in extra cost for concatenating and splitting data(reshaping and copying data in the memory is very expensive)
  
  SepDataFrame tries to act like a DataFrame whose column with multiindex
docstr: Assumptions:
  - inplace methods will return None
docstr_tok: ["Assumptions",":","-","inplace","methods","will","return","None"]
code: def apply_each(self, method: str, skip_align=True, *args, **kwargs):
      """
      Assumptions:
      - inplace methods will return None
      """
      inplace = False
      df_dict = {}
      for k, df in self._df_dict.items():
          df_dict[k] = getattr(df, method)(*args, **kwargs)
          if df_dict[k] is None:
              inplace = True
      if not inplace:
          return SepDataFrame(
              df_dict=df_dict, join=self.join, skip_align=skip_align
          )
  
imports: import pandas
  from typing import Dict, Iterable, Union
  import builtins
label_desc: Use image node_id 4 for calling the SepDataFrame obj's underlying member method code with example usage: obj.apply_each(method, skip_align) and returns: SepDataFrame