Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

372
Vistas
Iterando sobre el marco de datos de pandas y guardando en hojas separadas en un archivo xlxs

Estoy iterando sobre un marco de datos de pandas durante y realizo una operación para obtener la información (número de hoja de Excel) para guardar la hoja de Excel apropiada como esta:

 from opnepyxl.utils.dataframe import dataframe_to_rows for i,data in df.iterows: sheet=data['SheetNo'] #Create excel writer writer=pd.Excelwriter('output.xlxs') # write dataframe to excelsheet data.to_excel(writer, sheet) #save the excel file writer.save()

Marco de datos:

 ID SheetNo setting 2304 2 IGV5 2305 3 IGV2 2306 1 IGV6 2307 2 IGV2 2308 1 IGV1

Lo que quería era que los datos entraran en cada uno de los 'Número de hoja' creados del archivo de Excel, en cambio, la hoja anterior se sobrescribe con la siguiente, y solo puede ver el último número de hoja.

¿Qué puedo hacer para que este código funcione? Cualquier otro enfoque aparte del mío anterior será bienvenido.

about 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

el código de python está debajo. Tenga en cuenta que:

  1. Se supone que ya hay un archivo output.xlsx en el mismo directorio que ejecuta este código
  2. Buscará nombres de hojas de trabajo con la columna SheetNo . Si no está disponible en el archivo, creará una nueva hoja de trabajo/pestaña con ese nombre y agregará la fila de encabezado 3. El programa luego agregará cada fila (adjuntará) a la hoja
  3. Una vez que se agreguen todos los datos en DF, se guardará el archivo con el mismo nombre
  4. Puede ejecutar esto tantas veces como desee, seguirá agregando hojas nuevas o agregando hojas existentes.
 import pandas as pd from openpyxl import load_workbook data = {'ID': [2304,2305,2306,2307,2308], 'SheetNo': [2,3,1,2,1], 'setting': ['IGV5', 'IGV2', 'IGV6', 'IGV2', 'IGV1']} df = pd.DataFrame(data) headers = ['ID','SheetNo','setting'] FilePath = 'output.xlsx' #ASSUMPTON - File already exists wb = load_workbook(FilePath) for sheet in df.SheetNo.unique(): if str(sheet) in wb.sheetnames: #If sheet in excel file ws = wb[str(sheet)] else: ws = wb.create_sheet(title=str(sheet)) #Create New sheet is not present ws.append(headers) #New sheet = Need header, else not required i =0 j = 0 for row in ws.iter_rows(min_row=ws.max_row+1, max_row=ws.max_row+len(df[df.SheetNo == sheet]), min_col=1, max_col=3): for cell in row: cell.value = df[df.SheetNo == sheet].iloc[i,j] j = j + 1 j=0 i= i + 1 wb.save('output.xlsx')

Salida de Excel después de una ejecución del código

ingrese la descripción de la imagen aquí

about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda