Pandas проблема отображения процентных чисел после записи в эксел
Помогите пожалуйста, есть датафрейм:
df = pd.DataFrame({"Products":["Name1","Name2","Name3"],
"2021":[716.62,52.05,37.5],
"2022":[346.25,24.68,67.5],
"Diff%":[-0.51,-0.52,0.80] })
нужно записать Df в эксел, так, что бы колонка "Diff%" отображалась в процентах, форматирую в проценты и записываю в эксел.
df["Diff%"] = pd.Series(["{0:.2f}%".format(val * 100) for val in df["Diff%"]],index = df.index)
df.to_excel("D:\Test\df.xlsx",index = False)
сам Df выглядит корректно:
Products 2021 2022 Diff%
0 Name1 716.62 346.25 -51.00%
1 Name2 52.05 24.68 -52.00%
2 Name3 37.50 67.50 80.00%
а вот запись в эксел отображается не корректно:
вариант с записью df в файл и последующей конвертацией самого файла через ExcelWriter работает и отображет проценты корректно
writer = pd.ExcelWriter("D:\Test\df.xlsx", engine ="xlsxwriter")
df.to_excel(writer, index=False, sheet_name= "Sheet1")
workbook = writer.book
worksheet = writer.sheets["Sheet1"]
percent = workbook.add_format({"num_format" : "0%"})
worksheet.set_column("D:D",15,percent)
writer.save()
но есть проблема: оригинальных файлов много, и количество колонок везде разное, каждому Df писать свою колонку конвертации в проценты, выглядит не логично. Вопрос: есть ли какой то другой способ записи процентов в эксел с корректным отображением? или возможно я, что то делаю не правильно?
