df3 = df1.join(df2).dropna( ) #fusiona ambos archivos; Estado UEM y Fecha Inicio, eliminando valores no validos (nan) flag = True #while usado para que solicite los datos hasta que estos sean válidos while flag: mes = input('\nIngrese Mes a buscar: ') año = input('\nIngrese Año a buscar: ') if len(mes) == 0 or len(año) == 0: print("\nFavor ingrese un año y un mes válidos\n") else: flag = False fecha = año + "-" + contains0( mes ) #contains0 corrige la posibiliadd que el usuario ingrese 1, en lugar de 01 df_total_mes = df3[df3['Fecha Inicio'].str.contains(fecha)] num_trab = np.shape(df_total_mes)[0] # Se buscan el índice de los elementos en la columna 'Estado UEM' que satisfacen la condicion de decir 'TRABAJO TERMINADO' indexNames = df_total_mes[df_total_mes['Estado UEM'] == 'TRABAJO TERMINADO'].index # eliminar valores en índices que cumplieron la condicion en línea 28 df_total_mes.drop(indexNames, inplace=True) # contar la cantidad de filas que tienen por estado 'Pendiente' num_pendientes = np.shape(df_total_mes)[0]
df2 = df2[df2['Fecha Inicio'] !='00-00-0000'] df2 = pd.DataFrame([str(j) for i,j in enumerate(df2['Fecha Inicio'])],dtype=object, columns = ['Fecha Inicio']) df3 = df1.join(df2).dropna() #fusiona ambos archivos; Estado UEM y Fecha Inicio, eliminando valores no validos (nan) flag = True #while usado para que solicite los datos hasta que estos sean válidos while flag: mes = input('\nIngrese Mes a buscar: ') año = input('\nIngrese Año a buscar: ') if len(mes)==0 or len(año)==0: print("\nFavor ingrese un año y un mes válidos\n") else: flag = False fecha = año +"-" + contains0(mes) #contains0 corrige la posibiliadd que el usuario ingrese 1, en lugar de 01 df_total_mes = df3[df3['Fecha Inicio'].str.contains(fecha)] num_trab = np.shape(df_total_mes)[0] # Se buscan el índice de los elementos en la columna 'Estado UEM' que satisfacen la condicion de decir 'TRABAJO TERMINADO' indexNames = df_total_mes[ df_total_mes['Estado UEM'] == 'TRABAJO TERMINADO'].index # eliminar valores en índices que cumplieron la condicion en línea 28 df_total_mes.drop(indexNames , inplace=True) # contar la cantidad de filas que tienen por estado 'Pendiente' num_pendientes = np.shape(df_total_mes)[0] #calculo porcentaje porcentaje = round((num_trab - num_pendientes)/num_trab * 100,1)
df4 = df1.join(df3.join(df2)).dropna( ) #fusiona ambos archivos; Estado UEM y Fecha recepcion OT, eliminando valores no validos (nan) flag = True #while usado para que solicite los datos hasta que estos sean válidos while flag: mes = input('\n\tIngrese Mes a buscar: ') año = input('\tIngrese Año a buscar: ') if len(mes) == 0 or len(año) == 0: print("\nFavor ingrese un año y un mes válidos\n") else: flag = False fecha = año + "-" + contains0( mes ) #contains0 corrige la posibiliadd que el usuario ingrese 1, en lugar de 01 #Total de OT que se generaron en esa fecha df_total_mes = df4[df4['Fecha recepcion OT'].str.contains(fecha)] num_total_trab = np.shape(df_total_mes)[0] aux = df_total_mes[df_total_mes['Fecha Termino6'].str.contains(fecha)] num_trab_cl = np.shape(aux)[0] # contar la cantidad de filas que tienen por estado 'Pendiente' num_pendientes = np.shape(df_total_mes)[0] - num_trab_cl if num_total_trab != 0: #calculo porcentaje
while flag: serie = input('\nIngrese Equipo (Serie) a buscar: ') print('\nIngrese Fecha Inicio (f1) de búsqueda: ') a1 = input('\tAño: ') m1 = input('\tMes: ') print('\nIngrese Fecha término (f2) de búsqueda: ') a2 = input('\tAño: ') m2 = input('\tMes: ') if len(a2)==0 or len(a2)==0 or len(m1)==0 or len(m2)==0: print("\nFavor corrija los datos ingresados por uno válido\n") else: print(f"type(m1) = {type(m1)}\ntype(m2) = {type(m2)}") m1 = contains0(m1) m2 = contains0(m2)flag = True f1 = datetime.strptime(a1 +"-" +m1 + '-28 08:15:27.243860', '%Y-%m-%d %H:%M:%S.%f') f2 = datetime.strptime(a2 +"-" +m2 + '-28 08:15:27.243860', '%Y-%m-%d %H:%M:%S.%f') flag = False print(f"\nelse:\nm1 = {m1}, m2 = {m2}") # ============================================================================= # Revisar si el numero contiene 0 o no. En caso que no, agregarlo. # En caso que si, conservarlo. (listo) # Filtrar por Serie [listo] # Filtrar entre fechas [listo] # Contar filas np.shape(filtro_serie)[0] # =============================================================================
serie = input('\nIngrese Equipo (Serie) a buscar: ') print('\nIngrese Fecha Inicio (f1) de búsqueda: ') a1 = input('\tAño: ') m1 = input('\tMes: ') print('\nIngrese Fecha Término (f2) de búsqueda: ') a2 = input('\tAño: ') m2 = input('\tMes: ') if len(a2) == 0 or len(a2) == 0 or len(m1) == 0 or len(m2) == 0: print("\nFavor corrija los datos ingresados por uno válido\n") elif a2 < a1: print(f"\nEl año de término {a2} es menor que el año de inicio {a1}\n") else: # print(f"type(m1) = {type(m1)}\ntype(m2) = {type(m2)}") m1 = contains0(m1) m2 = contains0(m2) f1 = datetime.strptime(a1 + "-" + m1 + '-28 08:15:27.243860', '%Y-%m-%d %H:%M:%S.%f') f2 = datetime.strptime(a2 + "-" + m2 + '-28 08:15:27.243860', '%Y-%m-%d %H:%M:%S.%f') flag = False # print(f"\nelse:\nm1 = {m1}, m2 = {m2}") # ============================================================================= # Revisar si el numero contiene 0 o no. En caso que no, agregarlo. # En caso que si, conservarlo. (listo) # Filtrar por Serie [listo] # Filtrar entre fechas [listo]
df2 = df2[df2['Fecha Inicio'] !='00-00-0000'] df2 = pd.DataFrame([str(j) for i,j in enumerate(df2['Fecha Inicio'])],dtype=object, columns = ['Fecha Inicio']) df3 = df1.join(df2).dropna() #fusiona ambos archivos; Estado UEM y Fecha Inicio, eliminando valores no validos (nan) flag = True #while usado para que solicite los datos hasta que estos sean válidos while flag: mes = input('\nIngrese Mes a buscar: ') año = input('\nIngrese Año a buscar: ') if len(mes)==0 or len(año)==0: print("\nFavor ingrese un año y un mes válidos\n") else: flag = False fecha = año +"-" + contains0(mes) #contains0 corrige la posibiliadd que el usuario ingrese 1, en lugar de 01 df_total_mes = df3[df3['Fecha Inicio'].str.contains(fecha)] num_trab = np.shape(df_total_mes)[0] # Se buscan el índice de los elementos en la columna 'Estado UEM' que satisfacen la condicion de decir 'TRABAJO TERMINADO' indexNames = df_total_mes[ df_total_mes['Estado UEM'] == 'TRABAJO TERMINADO'].index # eliminar valores en índices que cumplieron la condicion en línea 28 df_total_mes.drop(indexNames , inplace=True) # contar la cantidad de filas que tienen por estado 'Pendiente' num_pendientes = np.shape(df_total_mes)[0] if num_trab!=0: #calculo porcentaje