code: def zscore_df(df, axis='row', keep_orig=False):
    '''
    take the zscore of a dataframe dictionary, does not write to net (self)
    '''
    df_z = {}
  
    for mat_type in df:
      if keep_orig and mat_type == 'mat':
        mat_orig = deepcopy(df[mat_type])
  
      inst_df = df[mat_type]
  
      if axis == 'row':
        inst_df = inst_df.transpose()
  
      df_z[mat_type] = (inst_df - inst_df.mean())/inst_df.std()
  
      if axis == 'row':
        df_z[mat_type] = df_z[mat_type].transpose()
  
    if keep_orig:
      df_z['mat_orig'] = mat_orig
  
    return df_f zscore_df(df, axis='row', keep_orig=False):
    '''
    take the zscore of a dataframe dictionary, does not write to net (self)
    '''
    df_z = {}
  
    for mat_type in df:
      if keep_orig and mat_type == 'mat':
        mat_orig = deepcopy(df[mat_type])
  
      inst_df = df[mat_type]
  
      if axis == 'row':
        inst_df = inst_df.transpose()
  
      df_z[mat_type] = (inst_df - inst_df.mean())/inst_df.std()
  
      if axis == 'row':
        df_z[mat_type] = df_z[mat_type].transpose()
  
    if keep_orig:
      df_z['mat_orig'] = mat_orig
  
    return df_z
docs: take the zscore of a dataframe dictionary, does not write to net (self)