Files
stand/utils/dfh.py
2022-05-27 20:46:59 +02:00

48 lines
968 B
Python

import pandas as pd
class DateFrameHolder:
def __init__(self, fn):
self.fn = fn
self.df = try_load_df(fn)
def dump(self):
dump_non_empty_df(self.df, self.fn)
def append(self, data):
data = pd.DataFrame.from_records([data])
self.df = pd.concat([self.df, data], ignore_index=True)
def clear(self):
self.df = pd.DataFrame()
def __repr__(self):
head = self.fn + ":"
line = "-" * len(head)
df = str(self.df)
return "\n".join((head, line, df))
def try_load_df(fn):
try:
df = pd.read_hdf(fn)
print(f">>> loaded dataframe from {fn}")
except FileNotFoundError:
df = pd.DataFrame()
print(">>> created empty dataframe")
return df
def dump_non_empty_df(df, fn, key="data"):
if df.empty:
print("<<< skip dumping empty dataframe")
return
print(f"<<< dump dataframe to {fn}")
df.to_hdf(fn, key)