excel 的条件格式整行 pandas

Conditional formatting entire row pandas for excel

我是 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 我希望国家/地区是法国的所有行都被着色。

谢谢。

您可以使用以下代码进行测试:

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

如果您希望整行都被着色,您可以按照建议使用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()