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%

а вот запись в эксел отображается не корректно:

screen

вариант с записью 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 писать свою колонку конвертации в проценты, выглядит не логично. Вопрос: есть ли какой то другой способ записи процентов в эксел с корректным отображением? или возможно я, что то делаю не правильно?


Ответы (0 шт):