通过Python在Excel中为单元格着色的快速方法

2024-09-30 02:20:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我有3个数据帧,分别是df,validatedOutput和initialoutput,都是相同的维度。此外,差值定义如下。你知道吗

difference_df = validatedOutput == initial_output   

我想将validatedOutput写入一个Excel文件,并将validatedOutput所在的所有值涂成黄色!=初始输出 为了做同样的事情,我使用了条件工作表.write方法根据差值对细胞进行着色。下面是一个示例代码:

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循环访问数据帧的每个元素,然后将其写入文件。 有没有更快的方法来做同样的事情?你知道吗


Tags: 方法formatdfforthiswriteworkbookpd
1条回答
网友
1楼 · 发布于 2024-09-30 02:20:28

我会尝试将这两个数据集(已验证和初始)写入Excel文件的两个独立区域,例如两个工作表,然后在Excel中使用条件格式进行着色,而不是通过Python代码指定颜色。你知道吗

相关问题 更多 >

    热门问题