Source code for fnet.fnetlogger

import pandas as pd
import os


[docs]class FnetLogger(object): """Log values in a dict of lists.""" def __init__(self, path_csv=None, columns=None): if path_csv is not None: df = pd.read_csv(path_csv) self.columns = list(df.columns) self.data = df.to_dict(orient='list') else: self.columns = columns self.data = {} for c in columns: self.data[c] = [] def __repr__(self): return 'FnetLogger({})'.format(self.columns)
[docs] def add(self, entry): if isinstance(entry, dict): for key, value in entry.items(): self.data[key].append(value) else: assert len(entry) == len(self.columns) for i, value in enumerate(entry): self.data[self.columns[i]].append(value)
[docs] def to_csv(self, path_csv): dirname = os.path.dirname(path_csv) if not os.path.exists(dirname): os.makedirs(dirname) pd.DataFrame(self.data)[self.columns].to_csv(path_csv, index=False)