Вывод в Excel не ограничивается созданием файла xlsx, который вы также можете записать как csv и позволить Excel загрузить файл csv.
Вы можете создать несколько листов, используя что-то вроде:
from pandas import ExcelWriter
def save_xls(list_dfs, dfs_names, xls_path):
with ExcelWriter(xls_path) as writer:
for df,name in zip(list_dfs, dfs_names):
df.to_excel(writer,name)
writer.save()
, а затем вы можете вызвать функцию с некоторым преобразованием ваших данных, таких как сводные таблицы и даже цвета:
save_xls(
(raw.style.format("{:,.0f}"),
actual_table.style.format("{:,.0f}"),
diff_table.style.applymap(_color_red_or_green).format("{:,.0f}"),
ratio_table.style.applymap(_color_red_yellow_or_green).format("{:.3f}")),
('Raw',
'Actuals',
'Diff',
'Ratio'),
results_with_format.xlsx')
например, форматирование с тремя цветами на основе значения ячеек:
def _color_red_yellow_or_green(val):
color = 'red' if val > 0.1 else 'yellow' if val > 0.05 else 'green'
return 'background-color: %s' % color