<jupyter_start><jupyter_text>Importafrom google.colab import drive drive.mount('/content/gdrive') import pandas as pd df=pd.ExcelFile('TFM DATABASE.xlsx')<jupyter_code>df=pd.ExcelFile('TFM DATABASE.xlsx')
df1 = pd.read_excel(df,'GPS - Enero 2020', na_values='?')
df1.head()
df1.isnull().sum()
    
pd.isnull(np.array([np.nan, 0], dtype=float))
#Funcion Dummy
#Data Transformation With Functions 1)Dummy para Plant 2)Dummy Para Estrutura 3)Dummy para modalidad 4)Aplicar Funcion de Distancia 5)Dummy para el dia de la semana

def dummy_convert (df,ID_ESTRUC):

    estruturas = pd.get_dummies(df[ID_ESTRUC], prefix = ID_ESTRUC)
    df = pd.concat([df, estruturas], axis = 1)

    return df



# df1 = pd.read_excel(df,'GPS - Enero 2020')
df1.describe()
df1.columns
df1.rename(columns={'Fec. Prod' : 'FEC_PROD',
                'Doc. Transporte' : 'DOC_TRANS',
                    'WERKS' : 'WERKS',
                    'FECHA_DESP' : 'FECHA_DESP',
                    'KUNNR     ' : 'KUNNR',
                    'IDEOBRA   ' : 'IDEOBRA',
                    'MATNR    ' : 'MATNR',
                    'FORMULA                       ' : 'FORMULA',
                    'ID_ESTRUC' : 'ID_ESTRUC',
                    'ID_MODALIDAD' : 'ID_MODALIDAD',
                    'VBELN_PED' : 'VBELN_PED',
                    'VBELN_ENTREGA' : 'VBELN_ENTREGA',
                    'WERK LON' : 'WERK_LON',
                    'WERK LAT' : 'WERK_LAT' ,
                    'OBRA LAT': 'OBRA_LAT',
                    'OBRA LON' : 'OBRA_LON',
                    'DES_ESTRUCTURA' : 'DES_ESTRUCTURA',
                    'Estado': 'ESTADO',
                    'Placa': 'PLACA',
                    'Cliente': 'CLIENTE',
                    'Descripción de Obra': 'DESC_OBRA',
                    'Pto. Exped': 'PTO_EXPED',
                    'V. Entregado' : 'V_ENTREGADO',
                    'H. Program' : 'H_PROGRAM',
                    'Tiempo de Proceso 1' : 'TPROCESO1',
                    'Tiempo de Proceso 2' : 'TPROCESO2',
                    'Tiempo Proceso' : 'TPROCESO',
                    'Traslado a Obra 1' : 'TRASLADO1',
                    'Traslado a Obra 2' : 'TRASLADO 2',
                    'Tiempo Translado Minutos' : 'TRASLADO',                     
                    'Espera en Obra 1': 'ESPERA1',
                    'Espera en Obra 2': 'ESPERA2',
                    'Tiempo Espera Minutos': 'TESPERA',
                    'Descarga en Obra 1' : 'DESCARGA1',
                    'Descarga en Obra 2' : 'DESCARGA2',
                    'Tiempo Descarga Minutos': 'TDESCARGA',
                    'Retorno as Planta 1': 'RETORNO1',
                     'Retorno as Planta 2': 'RETORNO2',
                    'Tiempo Retorno Planta Minutos': 'TRETORNO',
                    'Dif. Total': 'DIFTOTAL',
                    'Reconstruido': 'RECONSTRUIDO',
                    'T.Proceso' : 'TPROCESOTOTAL',
                    'T.Traslado' : 'TTRASLADOTOTAL',
                    'T.Espera' : 'TESPERATOTAL',
                    'T.Descarga': 'TDESCARGATOTAL',
                    'T.Retorno' : 'TRETORNOTOTAL',
                    'Dia' : 'DIA',
                    'Fecha_DiaSem' : 'DIASEMANA',
                    'FinSemana' : 'FINSEMANA',
                    'FinMes': 'FINMES'},
            inplace=True)

df1.columns
df1["distancia"]=df1.apply(lambda x: DistanciaGPS(x['WERK_LON'],x["WERK_LAT"],x["OBRA_LAT"],x["OBRA_LON"]),axis = 1)
df1["distancia"] = df1["distancia"].apply(np.round)
df2 =df1.copy()
df2=dummy_convert(df1,"ID_ESTRUC")
#aplica la funcion para ID_Estruc

df2=dummy_convert(df2,"WERKS")
#aplica la fucntion para Werks
df2=dummy_convert(df2, "ID_MODALIDAD")
#aplica la funcion para Modalidad



#apartir de aqui acaba la transformacion del database
len(df2)
print(df2.columns.tolist())
dfclean = df2[[ 'DOC_TRANS', 'WERKS', 'IDEOBRA', 'ID_ESTRUC','ID_MODALIDAD','VBELN_PED','VBELN_ENTREGA',
                'WERK_LON','WERK_LAT','OBRA_LAT','OBRA_LON','V_ENTREGADO','TPROCESOTOTAL', 'TTRASLADOTOTAL', 'TESPERATOTAL', 'TDESCARGATOTAL', 
               'TRETORNOTOTAL', 'TTOTAL', 'DIASEMANA', 'FINSEMANA', 'FINMES', 'distancia', 'ID_ESTRUC_1', 'ID_ESTRUC_3', 'ID_ESTRUC_4',
               'ID_ESTRUC_5', 'ID_ESTRUC_6', 'ID_ESTRUC_7', 'ID_ESTRUC_8', 'ID_ESTRUC_10', 'ID_ESTRUC_11', 'ID_ESTRUC_12',
               'ID_ESTRUC_14', 'ID_ESTRUC_15', 'ID_ESTRUC_16', 'ID_ESTRUC_17', 'ID_ESTRUC_18', 'ID_ESTRUC_19', 
               'ID_ESTRUC_20', 'ID_ESTRUC_22', 'ID_ESTRUC_23', 'ID_ESTRUC_24', 'ID_ESTRUC_25', 'ID_ESTRUC_26', 
               'ID_ESTRUC_27', 'ID_ESTRUC_28', 'ID_ESTRUC_30', 'ID_ESTRUC_32', 'ID_ESTRUC_33', 'ID_ESTRUC_34', 
               'ID_ESTRUC_36', 'ID_ESTRUC_40', 'ID_ESTRUC_41', 'ID_ESTRUC_42', 'ID_ESTRUC_43', 'ID_ESTRUC_44', 
               'ID_ESTRUC_45', 'ID_ESTRUC_46', 'ID_ESTRUC_48', 'ID_ESTRUC_50', 'WERKS_1203', 'WERKS_1207', 
               'WERKS_1209', 'WERKS_1213', 'WERKS_1217', 'WERKS_1219', 'WERKS_1253', 'WERKS_5202', 'WERKS_5212',
               'ID_MODALIDAD_1', 'ID_MODALIDAD_2', 'ID_MODALIDAD_6', 'ID_MODALIDAD_15', 'ID_MODALIDAD_16',
               'ID_MODALIDAD_17', 'ID_MODALIDAD_18', 'ID_MODALIDAD_19', 'ID_MODALIDAD_20', 'ID_MODALIDAD_21']]
dfclean.head(100)<jupyter_output><empty_output><jupyter_text>eliminar nulosdf2.dropna(subset = ["TDESCARGATOTAL"], inplace=True)df2.isnull()df2.dtypes<jupyter_code>dfclean.info(verbose=True)<jupyter_output><class 'pandas.core.frame.DataFrame'>
RangeIndex: 5865 entries, 0 to 5864
Data columns (total 79 columns):
 #   Column           Non-Null Count  Dtype  
---  ------           --------------  -----  
 0   DOC_TRANS        5865 non-null   int64  
 1   WERKS            5865 non-null   int64  
 2   IDEOBRA          5865 non-null   int64  
 3   ID_ESTRUC        5865 non-null   int64  
 4   ID_MODALIDAD     5865 non-null   int64  
 5   VBELN_PED        5865 non-null   int64  
 6   VBELN_ENTREGA    5865 non-null   int64  
 7   WERK_LON         5865 non-null   float64
 8   WERK_LAT         5865 non-null   float64
 9   OBRA_LAT         5863 non-null   float64
 10  OBRA_LON         5863 non-null   float64
 11  V_ENTREGADO      5865 non-null   float64
 12  TPROCESOTOTAL    4424 non-null   float64
 13  TTRASLADOTOTAL   5170 non-null   float64
 14  TESPERATOTAL     4077 non-null   float64
 15  TDESCARGATOTAL   4213 non-null   float64
 16  TRETORNOTOTAL    5184 non-null   float64
 17  TTOTAL        [...]<jupyter_text>knn imputation transform for the horse colic datasetfrom sklearn.preprocessing import MinMaxScalerscaler = MinMaxScaler()dfclean = pd.DataFrame(scaler.fit_transform(dfclean), columns = dfclean.columns)dfclean.head()<jupyter_code># https://medium.com/@kyawsawhtoon/a-guide-to-knn-imputation-95e2dc496e
from sklearn.impute import KNNImputer
imputer = KNNImputer(n_neighbors=5)
dfclean = pd.DataFrame(imputer.fit_transform(dfclean),columns = dfclean.columns)
dfclean.isna().any()
dfclean.info(verbose=True)
dfclean['TTOTAL'].head(40)
dfclean.to_excel("databasetransformed.xlsx")
#Empezamos el Modelo
#1) Importar todas las libraria
#2) grafas de la linealidade entres las variables independentes y la variable dependent
#3) Criar analises de regression multipla para todas las variables  (Ire parar aqui)
#4) con data set maior tener un modelo de entrenamento
#5)Analisas resultadoss
import matplotlib.pyplot as plt
df2.corr()
sns.distplot(dfclean['TTOTAL'])
f, ax = plt.subplots(figsize=(10,10))
sns.scatterplot(x='TDESCARGATOTAL', y='dºistancia', hue='IDEOBRA', data=dfclean, ax=ax, )
ax = sns.swarmplot(x="DIASEMANA", y="TDESCARGATOTAL", data=dfclean)
fig, ax = plt.subplots(figsize=(10,10))
sns.boxplot(y='TDESCARGATOTAL', x='distancia', data=dfclean, orient="h", ax=ax)<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.12979465323518016, 'fraction_numerical': 0.04507296913341082, 'mean_word_length': 2.5040723981900452, 'pattern_counts': {'":': 0, '<': 13, '<?xml version=': 0, '>': 13, 'https://': 1, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '3', 'dir': 'jupyter-structured-clean-dedup', 'id': '22621', 'license': 'BSD-3-Clause', 'n_tokens_mistral': 3249, 'n_tokens_neox': 2966, 'n_words': 541, 'path': 'Codigo con Diccionario.ipynb', 'repo_name': 'RaulTrujillo25/FinalMasterThesisEAE', 'size': '7743'}