更快的方式来通过Python在Excel中对单元格着色

我有3个数据框difference_df,validatedOutput和initial_output所有相同的维度。 另外difference_df被定义如下。

difference_df = validatedOutput == initial_output 

我想将validatedOutput写入Excel文件,并将所有这些值以黄色进行着色,其中validatedOutput!= initial_output为了做到这一点,我使用了一个有条件的worksheet.write方法来根据差异__d的值对单元格着色。 以下是一个示例代码:

 workbook = writer.book worksheet = writer.sheets['Upload_Sheet'] yellow_format = workbook.add_format() yellow_format.set_pattern(1) # This is optional when using a solid fill. yellow_format.set_bg_color('#FFFF00') #orange format. This color is for header orange_format = workbook.add_format() orange_format.set_pattern(1) # This is optional when using a solid fill. orange_format.set_bg_color('#FFA500') for i in range(len(difference_df.columns)): for j in range(len(difference_df.index)): op = validatedOutput.iloc[j,i] ip = initial_output.iloc[j,i] if pd.isnull(op) and pd.isnull(ip) : continue elif pd.notnull(op) and difference_df.iloc[j, i]: worksheet.write(j+1, i, op) elif pd.notnull(op) : worksheet.write(j+1, i, op, yellow_format) 

问题是这种方法是非常慢,因为我使用for循环访问dataframe的每个元素,然后将其写入文件。 有没有更快的方法来做同样的事情?

我试图将两个数据集(validation和初始)写入Excel文件的两个单独区域,例如两个工作表,然后在Excel中使用条件格式来进行着色,而不是通过Python代码指定颜色。