def get_cases(csv_export='cases.csv'): #query the table db.load() rawtbl = pd.read_sql('select * from cases', con=db.simeng) #assign group id caseid = list(rawtbl.caseid) caseid_nm = 0 groupid_j = 0 groupid = [] for c in caseid: if c < caseid_nm: groupid_j = groupid_j + 1 caseid_nm = c groupid.append(groupid_j) rawtbl['groupid'] = groupid rawtbl['groupcaseid'] = [ caseid[i] * 100 + groupid[i] for i in range(len(caseid)) ] if len(csv_export) > 0: rawtbl.to_csv(csv_export, index=False) pvt = pd.pivot_table(rawtbl, index='groupcaseid', values='value', columns='parameter', aggfunc='mean') return pvt
def import_parameters_from_excel(): global ptbl, GROUPS, PARAM_XFILENAME db.load() tbls = [ pd.read_excel(os.path.join(BASE_DIR, PARAM_XFILENAME), grp) for grp in GROUPS ] ptbl = pd.concat(tbls, axis=0) ptbl.to_sql(db.PARAM_TABLE, con=db.simeng, if_exists='replace', index=False)
def run_mc(scope_groups=None, N_runs=500, refresh=True, threshold_conf=.8, conf_int=.9): global WATCH_FIELDS db.load() fun_handle = design.update input_table = db.PARAM_TABLE output_table = SQL_OUTPUT ctbl = monte_carlo(fun_handle=fun_handle, output_fields=WATCH_FIELDS, input_table=input_table, output_table=output_table, conf_int=conf_int, con=db.simeng, threshold_conf=threshold_conf, N_runs=N_runs, refresh=refresh, scope_groups=scope_groups) return ctbl
def load(): db.load()
def get_cases(): db.load() casetbl = pd.read_sql('select * from ' + SQL_OUTPUT, con=db.simeng) return casetbl
from design import database as db import seaborn as sb import pandas as pd #load database and query the case table db.load() tbl = pd.read_sql('select * from cases', con=db.simeng) #create the pivot table of all good (not null) cases bad_caseids = tbl[pd.isnull(tbl.value)].caseid.unique() goodtbl = tbl[~tbl.caseid.isin(bad_caseids)].copy() pvt = pd.pivot_table(goodtbl, index='caseid', values='value', columns='parameter', aggfunc='mean') #plot kde harvest extension vs costs sb.jointplot(x='plants_harvest_extension', y='opex', data=pvt, kind='kde')