Vicky23/pythonco2
0
1import streamlit as st2import numpy as np3import pandas as pd4 5from pycaret.regression import load_model, predict_model,setup6 7file="data/FuelConsumptionCo2.csv"8 9df = pd.read_csv(file)10 11num_cols=['ENGINESIZE', 'CYLINDERS','FUELCONSUMPTION_CITY','FUELCONSUMPTION_HWY',\12 'FUELCONSUMPTION_COMB','FUELCONSUMPTION_COMB_MPG']13cat_cols=['MAKE','VEHICLECLASS','TRANSMISSION','FUELTYPE']14target=['CO2EMISSIONS']15 16model_cat = load_model('model_pkl')17st.title('CO2 Emission of Vehicles')18 19st.markdown("## 汽車二氧化碳排放量")20st.subheader('CO2 Emission of Vehicle')21 22features = num_cols + cat_cols23 24# for num_cols25col_values = []26for col in num_cols:27 col_value = st.slider(col, min_value=float(df[col].min()), max_value=float(df[col].max()), value=float(df[col].median()))28 col_values.append(col_value)29num_values = [col_value for col_value in col_values if isinstance(col_value, (int, float))] 30 31# for cat_cols32cat_values = [] 33for col in cat_cols:34 ops = list(df[col].unique()) 35 cat_value = st.selectbox(col, options=ops, index=0)36 cat_values.append(cat_value)37cat_values = [cat_value for cat_value in cat_values if isinstance(cat_value, str)]38 39final_features = np.array(num_values + cat_values).reshape(1, -1)40 41if st.button('Estimate'):42 new_data=pd.DataFrame(data=final_features,columns=num_cols + cat_cols)43 prediction=predict_model(estimator=model_cat, data=new_data)44 st.balloons()45 result=int(prediction['prediction_label'][0])46 st.success(47 f' Estimated CO2 Emission is {result}')48 