【问题标题】:Conditional formatting entire row pandas for excel条件格式整行 Pandas 用于 excel
【发布时间】:2023-03-08 17:36:01
【问题描述】:

我对 Python 还很陌生,但我无法弄清楚: 我正在尝试根据单元格值格式化整行。

我已经尝试过这段代码,但它对文件没有任何作用:

   writer = pd.ExcelWriter("Classeur.xlsx")
   df.to_excel(writer, sheet_name="Feuil1")
   writer.save()

   workbook=writer.book
   worksheet=writer.sheets['Feuil1']

   format1 = workbook.add_format({'bg_color': '#FFC7CE',
                               'font_color': '#9C0006'})


   worksheet.conditional_format('A2:C5', 
                                       {"type": "formula",
                                        "criteria": '="$B"&ROW()="FR"',
                                          "format": format1
                                       }
                            )

   workbook.close()

我的文件有三列:Product , Country , Sales,我希望国家为法国的所有行都被着色。

谢谢。

【问题讨论】:

    标签: python excel dataframe formatting conditional-formatting


    【解决方案1】:

    你可以用下面的代码进行测试:

    df= pd.DataFrame([[0,'A',1],[1,'FR',2],[2,'B',3],[3,'C',5],[4,'FR',7]])
    writer = pd.ExcelWriter("Classeur.xlsx")
    df.to_excel(writer, sheet_name="Feuil1",header =False, index = False)
    
    workbook=writer.book
    worksheet=writer.sheets['Feuil1']
    
    format1 = workbook.add_format({'bg_color': '#FFC7CE','font_color': '#9C0006'})
    worksheet.conditional_format('A2:C5', {'type': 'cell','criteria': '==','value': '"FR"',"format": format1})
    workbook.close()
    writer.save()  
    

    或使用:

    df= pd.DataFrame([[0,'A',1],[1,'FR',2],[2,'B',3],[3,'C',5],[4,'FR',7]])
    writer = pd.ExcelWriter("Classeur.xlsx")
    df.to_excel(writer, sheet_name="Feuil1",header =False, index = False)
    
    workbook=writer.book
    worksheet=writer.sheets['Feuil1']
    
    format1 = workbook.add_format({'bg_color': '#FFC7CE','font_color': '#9C0006'})
    worksheet.conditional_format('B2:B5', {'type': 'formula','criteria': '=B2="FR"','format': format1})
    workbook.close()
    writer.save()
    

    如果要将数据框的列名和索引保存到excel,可以删除header =False and index = False

    如果您希望整行都被着色,您可以按照建议here 使用excel 中的INDIRECT() 函数。

    df= pd.DataFrame([[0,'A',1],[1,'FR',2],[2,'B',3],[3,'C',5],[4,'FR',7]])
    writer = pd.ExcelWriter("Classeur.xlsx")
    df.to_excel(writer, sheet_name="Feuil1",header=False,index=False)
    writer.save()
    
    workbook=writer.book
    worksheet=writer.sheets['Feuil1']
    
    format1 = workbook.add_format({'bg_color': '#FFC7CE','font_color': '#9C0006'})
    worksheet.conditional_format('A2:C5', {"type": "formula","criteria": '=INDIRECT("B"&ROW())="FR"',"format": format1})
    workbook.close()
    writer.save()
    

    【讨论】:

    • 你好,这段代码只给单元格上色,我想给整行上色,你知道我该怎么做吗?非常感谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-13
    • 1970-01-01
    • 2016-08-08
    相关资源
    最近更新 更多