Tengo una pregunta sobre cómo agregar un marco de datos a una hoja existente en un archivo existente.
Traté de escribir el código por mí mismo.
writer = pd.ExcelWriter('existingFile.xlsx', engine='openpyxl', mode='a') df.to_excel(writer, sheet_name="existingSheet", startrow=writer.sheets["existingSheet"].max_row, index=False, header=False)y esto causaría un error
ValueError: la hoja 'hoja existente' ya existe y if_sheet_exists está establecida en 'error'.
y busqué en Google y encontré esta función aquí;
Agregue una hoja de Excel existente con un nuevo marco de datos usando python pandas
e incluso con esta función, todavía causa el mismo error, aunque creo que esta función evita este error exacto de lo que pienso.
¿Podrias ayudarme por favor?
¡Muchos gracias!
Parece que esta función está rota en pandas 1.3.0 Solo mire este documento , cuando intente agregar a la hoja existente, generará un error, creará uno nuevo o lo reemplazará
if_sheet_exists{'error', 'new', 'replace'}, default 'error' Cómo comportarse cuando se intenta escribir en una hoja que ya existe (solo modo de adición).
error: generar un ValueError.
nuevo: Crea una nueva hoja, con un nombre determinado por el motor.
replace: elimina el contenido de la hoja antes de escribir en ella.
Nuevo en la versión 1.3.0
La única solución es degradar pandas (1.2.3 funciona para mí)
pip install pandas==1.2.3Supongo que llego tarde a la fiesta pero
Agregue la palabra clave if_sheet_exists='replace' a ExcelWriter como esta
pd.ExcelWriter('existingFile.xlsx', engine='openpyxl', mode='a', if_sheet_exists='replace' )Entonces puedes usar la última versión de pandas
Desde Pandas 1.4 , también hay una opción de 'overlay' para if_sheet_exists .