Условное форматирование всей строки панды для Excel - PullRequest
0 голосов
/ 12 апреля 2019

Я довольно новичок в 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, и я хочу, чтобы все строки, где находится страна Франция, были окрашены.

Спасибо.

1 Ответ

0 голосов
/ 12 апреля 2019

вы можете проверить с помощью следующего кода:

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()

можно удалить header =False and index = False, если вы хотите сохранить имена столбцов и индексы фрейма данных в Excel.

Если вы хотите, чтобы целые строки были раскрашены , вы можете использовать функцию INDIRECT() из excel, как предложено здесь .

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()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...