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
code: def _update_join(self):
      if self.join not in self:
          if len(self._df_dict) > 0:
              self.join = next(iter(self._df_dict.keys()))
          else:
              # NOTE: this will change the behavior of previous reindex when all the keys are empty
              self.join = None
  
imports: import pandas
  from typing import Dict, Iterable, Union
  import builtins
label_desc: Use image node_id 7 for calling the SepDataFrame obj's underlying member method code with example usage: obj._update_join() without return types