def to_excel(self, filename=None): ''' Export results as XLSX Args: filename (str): if None, return string; else, write to file Returns: An sc.Spreadsheet with an Excel file, or writes the file to disk ''' spreadsheet = sc.Spreadsheet() spreadsheet.freshbytes() with pd.ExcelWriter(spreadsheet.bytes, engine='xlsxwriter') as writer: for key in self.result_keys(): result_df = pd.DataFrame.from_dict( sc.flattendict(self.results[key], sep='_')) result_df.to_excel(writer, sheet_name=key) spreadsheet.load() if filename is None: output = spreadsheet else: output = spreadsheet.save(filename) return output
def to_excel(self, filename=None): ''' Export results as XLSX Args: filename (str): if None, return string; else, write to file Returns: An sc.Spreadsheet with an Excel file, or writes the file to disk ''' resdict = self.export_results(for_json=False) result_df = pd.DataFrame.from_dict(resdict) result_df.index = self.tvec result_df.index.name = 'Day' par_df = pd.DataFrame.from_dict(sc.flattendict(self.pars, sep='_'), orient='index', columns=['Value']) par_df.index.name = 'Parameter' spreadsheet = sc.Spreadsheet() spreadsheet.freshbytes() with pd.ExcelWriter(spreadsheet.bytes, engine='xlsxwriter') as writer: result_df.to_excel(writer, sheet_name='Results') par_df.to_excel(writer, sheet_name='Parameters') spreadsheet.load() if filename is None: output = spreadsheet else: output = spreadsheet.save(filename) return output
def test_flattendict(): # Simple integration test to make sure the function runs without raising an error sc.flattendict({'a': {'b': 1, 'c': {'d': 2, 'e': 3}}}) flat = sc.flattendict({'a': {'b': 1, 'c': {'d': 2, 'e': 3}}}, sep='_') return flat