code: def create_all_levels_dataset(self, df):
      self.checkData(df)
      lAllLevelsDataset = df.copy()
      lMapped = True
      # level 0 is the original/physical columns
      for k in self.mStructure[0]:
          if k not in df.columns:
              lMapped = False
      if not lMapped:
          i = 0
          for k in self.mStructure[0]:
              print(
                  "MAPPING_ORIGINAL_COLUMN", df.columns[i + 1], "=>", k
              )
              lAllLevelsDataset[k] = df[df.columns[i + 1]]
              i = i + 1
  
      for level in sorted(self.mStructure.keys()):
          if level > 0:
              for col in sorted(self.mStructure[level].keys()):
                  new_col = None
                  for col1 in sorted(self.mStructure[level][col]):
                      if new_col is None:
                          new_col = lAllLevelsDataset[col1]
                      else:
                          new_col = new_col + lAllLevelsDataset[col1]
                  lAllLevelsDataset[col] = new_col
      return lAllLevelsDataset
  
imports: import pandas
  import numpy
  from ..None import ForecastEngine
  from .None import Options
  from .None import Perf
  from .None import Utils
  from .None import Plots
  import time
label_desc: Use image node_id 7 for calling the cSignalHierarchy obj's underlying member method code with example usage: obj.create_all_levels_dataset(df) and returns: lAllLevelsDataset