Imprimo las tablas que escaneé de Internet con Selenium a Excel. Sin embargo, esta tabla contiene valores como "15.300". Me gustaría imprimir estos valores como "15,300" o "15.3" y cambiar las celdas que normalmente son "1.022" a "1022". Y agrego horario para cada 5 minutos.
En resumen, quiero eliminar el punto de los valores punteados y convertir la coma en un punto.
Tomo toda la tabla como una clase y luego la divido en partes. Aquí está mi código: (Desafortunadamente, dado que son datos de la empresa, solo puedo compartir cierta parte).
driver.get(urlTarget) a=driver.find_element_by_class_name("dataTable").text #print(a) x = a.split('\n') x[0] = "Mak.No. AEF% SEF% DAS% YLW% YF/Y MIS% RTI% NDOF PRKG(kg) DOF% NCOP YEF% YEF-A% YEF-B% FBE% FBE-A% FBE-B% SBE% SBE-A% SBE-B% NCTB NT/T" for i in range (len(x)-1): if i != 0: x[i]=x[i+1] #print(x) workbook = xlsxwriter.Workbook('C:/Users/...xxx.xlsx') worksheet = workbook.add_worksheet()En el código anterior, eliminé los nombres de las columnas y los lugares que quería eliminar. El lugar donde pasará el proceso real está en el código a continuación.
row = 0 column = 0 b=x[:(len(x)-1)] for i in b: c=i.split() column=0 for item in c : worksheet.write(row, column, item) column+=1 row += 1 workbook.close() Esto escribe la tabla en Excel. Pero necesito cambios. Cuando uso item=item.str.replace(',','.') en el bucle for, devolverá el error de que el objeto 'str' no tiene el atributo 'str'.
primero convierta el número en una cadena y, si ya es una cadena, no use ".str"
item = item.replace(',','.')o
item = str(item).replace(',','.')Creo que estás en el camino equivocado aquí: los puntos y las comas con los que estás tratando son separadores decimales y de miles. Para trabajar con ellos, puede modificar el formato de sus celdas, como se muestra en este cuadro de diálogo para una celda en particular:
También están las configuraciones regionales de su computadora con Windows: