Pandas предлагает несколько возможностей для прямого указания стиля в выходном файле Excel .Он ограничен, но, к счастью, для вас есть опция числового формата.
import pandas as pd
# Initialize example dataframes
df1 = pd.DataFrame(
data=[[4, 5], [0, 0], [1, 2], [3, 3], [3, 3]],
index=['Total', 'Slow', 'Normal', 'Fast', 'Fast'],
columns=['abc', 'def'],
)
df2 = pd.DataFrame(
data=[[3, 4], [0, 0], [0, 1], [3, 3], [3, 3]],
index=['Total', 'Slow', 'Normal', 'Fast', 'Fast'],
columns=['abc', 'def'],
)
result_df = df2 / df1
# Change rows index into data column (to avoid any chance of having non-unique row index values,
# since the pandas styler can only handle unique row index)
result_df = result_df.reset_index()
# Write excel output file with number format styling applied
result_df.style.applymap(lambda _: 'number-format: 0.00%').to_excel('result.xlsx', engine='openpyxl', index=False)