Pandas 到 Excel 条件格式整列

2023-12-25

我想将 Pandas 数据框写入 Excel 并格式化。为此我正在使用xlsxwriter。我的问题有两个:

  • 首先,如何将条件格式应用于整列?在里面examples http://xlsxwriter.readthedocs.io/example_conditional_format.html他们使用特定的单元格范围格式(例如worksheet1.conditional_format('B3:K12', ...)),有没有办法可以引用整个专栏?

  • 其次,如果 B 列与 C 列的差异超过 15%,我想将其标记为红色。正确的公式是什么?

我目前正在尝试下面的代码,它不起作用(我不知道如何引用列)。

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.


首先,如何将条件格式应用于整列

您可以指定列中从第一行到最后一行的单元格范围,例如C1:C1048576。这就是它的内部存储方式,它只是显示为C:C.

这适用于可以在 XlsxWriter 中使用列范围的所有情况。

其次,如果 B 列与 C 列的差异超过 15%,我想将其标记为红色。正确的公式是什么?

您应该在 Excel 中弄清楚这一点,然后将条件格式应用到 XlsxWriter。像这样的事情可能会起作用:

=ABS(B1-C1)/C1 > 0.15

另外,我在Mac上运行Excel,不确定它是否有什么区别,但我注意到Windows版本使用,,Mac版本需要;对于公式。不知道这对 xlsxwriter 有什么影响

See the 使用公式 https://xlsxwriter.readthedocs.io/working_with_formulas.htmlXlsxWriter 文档的部分解释了如何使用它。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Pandas 到 Excel 条件格式整列 的相关文章

随机推荐