| import pandas as pd |
| from scipy.stats import variation, iqr |
|
|
|
|
| def display_input_variation( |
| process_df, |
| material_usage_df, |
| employee_usage, |
| capital_cost_df, |
| ): |
| process_des = process_df.describe() |
|
|
| cost_dict = { |
| "data": "Total Cost", |
| "records": process_des["cost"]["count"], |
| "types": len(process_df["process_id"].unique()), |
| "min": process_des["cost"]["min"], |
| "mean": round(process_des["cost"]["mean"], 2), |
| "max": process_des["cost"]["max"], |
| "sd": process_des["cost"]["std"], |
| "variation": variation(process_df["cost"]), |
| "iqr": iqr(process_df["cost"]), |
| } |
|
|
| material_des = material_usage_df.describe() |
|
|
| material_amount = { |
| "data": "Material Amount", |
| "records": material_des["amount"]["count"], |
| "types": len(material_usage_df["name"].unique()), |
| "min": material_des["amount"]["min"], |
| "mean": round(material_des["amount"]["mean"], 2), |
| "max": material_des["amount"]["max"], |
| "sd": material_des["amount"]["std"], |
| "variation": variation(material_usage_df["amount"]), |
| "iqr": iqr(material_usage_df["amount"]), |
| } |
|
|
| material_unit_cost = { |
| "data": "Material Unit Cost", |
| "records": material_des["unit_cost"]["count"], |
| "types": len(material_usage_df["name"].unique()), |
| "min": material_des["unit_cost"]["min"], |
| "mean": round(material_des["unit_cost"]["mean"], 2), |
| "max": material_des["unit_cost"]["max"], |
| "sd": material_des["unit_cost"]["std"], |
| "variation": variation(material_usage_df["unit_cost"]), |
| "iqr": iqr(material_usage_df["unit_cost"]), |
| } |
|
|
| employee_usage["duration"] = ( |
| employee_usage["duration"] * employee_usage["amount"] |
| ) |
| ec_des = employee_usage.describe() |
|
|
| ec_unit_cost = { |
| "data": "Labor Unit Cost", |
| "records": ec_des["cost"]["count"], |
| "types": len(employee_usage["employee_name"].unique()), |
| "min": ec_des["cost"]["min"], |
| "mean": round(ec_des["cost"]["mean"], 2), |
| "max": ec_des["cost"]["max"], |
| "sd": ec_des["cost"]["std"], |
| "variation": variation(employee_usage["cost"]), |
| "iqr": iqr(employee_usage["cost"]), |
| } |
|
|
| ec_duration = { |
| "data": "Labor Duration", |
| "records": ec_des["duration"]["count"], |
| "types": len(employee_usage["employee_name"].unique()), |
| "min": ec_des["duration"]["min"], |
| "mean": round(ec_des["duration"]["mean"], 2), |
| "max": ec_des["duration"]["max"], |
| "sd": ec_des["duration"]["std"], |
| "variation": variation(employee_usage["duration"]), |
| "iqr": iqr(employee_usage["duration"]), |
| } |
|
|
| ec_day_amount = { |
| "data": "Labor Day Amount", |
| "records": ec_des["day_amount"]["count"], |
| "types": len(employee_usage["employee_name"].unique()), |
| "min": ec_des["day_amount"]["min"], |
| "mean": round(ec_des["day_amount"]["mean"], 2), |
| "max": ec_des["day_amount"]["max"], |
| "sd": ec_des["day_amount"]["std"], |
| "variation": variation(employee_usage["day_amount"]), |
| "iqr": iqr(employee_usage["day_amount"]), |
| } |
|
|
| capital_des = capital_cost_df.describe() |
|
|
| cc_unit_cost = { |
| "data": "Capital Cost", |
| "records": capital_des["cost"]["count"], |
| "types": len(capital_cost_df["name"].unique()), |
| "min": capital_des["cost"]["min"], |
| "mean": round(capital_des["cost"]["mean"], 2), |
| "max": capital_des["cost"]["max"], |
| "sd": capital_des["cost"]["std"], |
| "variation": variation(capital_cost_df["cost"]), |
| "iqr": iqr(capital_cost_df["cost"]) |
| } |
|
|
| cc_dayamount = { |
| "data": "Capital Cost Day Amount", |
| "records": capital_des["day_amount"]["count"], |
| "types": len(capital_cost_df["name"].unique()), |
| "min": capital_des["day_amount"]["min"], |
| "mean": round(capital_des["day_amount"]["mean"], 2), |
| "max": capital_des["day_amount"]["max"], |
| "sd": capital_des["day_amount"]["std"], |
| "variation": variation(capital_cost_df["day_amount"]), |
| "iqr": iqr(capital_cost_df["day_amount"]) |
| } |
|
|
| cc_duration = { |
| "data": "Capital Cost Duration", |
| "records": capital_des["duration"]["count"], |
| "types": len(capital_cost_df["name"].unique()), |
| "min": capital_des["duration"]["min"], |
| "mean": round(capital_des["duration"]["mean"], 2), |
| "max": capital_des["duration"]["max"], |
| "sd": capital_des["duration"]["std"], |
| "variation": variation(capital_cost_df["duration"]), |
| "iqr": iqr(capital_cost_df["duration"]) |
| } |
|
|
| data_variation = pd.DataFrame( |
| [ |
| cost_dict, |
| material_unit_cost, |
| material_amount, |
| ec_unit_cost, |
| ec_duration, |
| ec_day_amount, |
| cc_unit_cost, |
| cc_dayamount, |
| cc_duration, |
| ] |
| ) |
|
|
| |
| |
| |
| |
| |
| return data_variation |
|
|
|
|
| def display_input_variation_by_directory(folder_name): |
| process_df = pd.read_csv(f"{folder_name}/generated_process_data.csv") |
| material_usage_df = pd.read_csv( |
| f"{folder_name}/generated_material_usage.csv") |
| employee_usage_df = pd.read_csv( |
| f"{folder_name}/generated_employee_usage.csv") |
| capital_cost_df = pd.read_csv(f"{folder_name}/generated_capital_cost.csv") |
|
|
| result_variation = display_input_variation( |
| process_df, |
| material_usage_df, |
| employee_usage_df, |
| capital_cost_df, |
| ) |
|
|
| return result_variation |
|
|