【发布时间】:2018-03-26 19:52:43
【问题描述】:
我想用格式化将 Pandas 数据框写入 Excel。为此,我使用xlsxwriter。我的问题是双重的:
首先,如何将条件格式应用于整列?在examples 他们使用特定的单元格范围格式(例如
worksheet1.conditional_format('B3:K12', ...)),有没有办法可以引用整列?其次,如果 B 列与 C 列的差异超过 15%,我想将 B 列标记为红色。什么是正确的公式?
我目前正在尝试下面的代码,但它不起作用(我不知道如何引用列)。
writer = pd.ExcelWriter('pacing.xlsx', engine='xlsxwriter')
df.to_excel(writer, sheet_name='Last year vs. current state')
#worksheet.set_column('B:B', 18, format1)
workbook = writer.book
worksheet = writer.sheets['Last year vs. current state']
format_missed = workbook.add_format({'bg_color': '#ff0000'})
format_ok = workbook.add_format({'bg_color': '#008000'})
worksheet.conditional_format('C:C', {'type': 'formula',
'criteria': '=ABS((B-C)/C) > 15',
'format': format_missed})
writer.save()
另外,我在 Mac 上运行 Excel,不确定它是否有任何区别,但我注意到 Windows 版本在哪里使用 ,,Mac 版本需要 ; 用于公式。不知道这对xlsxwriter 有何影响。
【问题讨论】:
-
在 Excel 中执行,然后在 python 中复制公式。
B:B是引用整个列的常用方法(在这种情况下也是:在 excel 中先测试)。条件格式是excel的东西。也许您只想简单地检查 python 和格式化单元格,而不是给 Excel 条件、范围和格式参数)。
标签: python pandas xlsxwriter