Pandas到Excel条件格式化整列

时间:2018-03-26 09:40:01

标签: python pandas xlsxwriter

我想用格式化将Pandas数据帧写入Excel。为此,我使用worksheet1.conditional_format('B3:K12', ...)。我的问题有两个:

  • 首先,如何将条件格式应用于整列?在examples中,他们使用特定的单元格范围格式(例如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() ),有没有办法可以引用整列?

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

我目前正在尝试以下代码,但这些代码无效(我不知道如何引用列)。

,

此外,我在Mac上运行Excel,不确定它是否有任何区别,但我注意到Windows版本使用;的位置,Mac版本需要{{1}对于公式。不知道这会如何影响xlsxwriter

1 个答案:

答案 0 :(得分:2)

  

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

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

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

  

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

这是您应该在Excel中解决的问题,然后将条件格式应用于XlsxWriter。这样的事情可能会奏效:

=ABS(B1-C1)/C1 > 0.15
  

另外,我在Mac上运行Excel,不确定它是否有任何区别,但我已经注意到Windows版本使用的位置,Mac版本需要;对于公式。不知道这会如何影响xlsxwriter

有关如何使用此功能的说明,请参阅XlsxWriter文档的Working with Formulas部分。