параметры worksheet.conditional_format для ExcelWriter в цикле
Есть необходимость кастомизации выгрузки данных в файл-эксель (xlsx) из DataFrame Pandas. Например цветовая маркировка ячеек в зависимости от их значения. Вот тут идёт получение данных через АПИ бэкенда и перенос этих данных в объект DataFrame:
with urllib.request.urlopen(url) as req:
data = json.load(req)
df_s = pd.DataFrame(data )
Далее я в цикле хочу перебрать строки и, в зависимости от значения, сделать цвет ячейки. И на этом этапе не отрабатывает, а именно строка с 'value': importance.strip()
:
for i, row in df_s.iterrows():
importance = str(row['service_importance']).lstrip()
worksheet.conditional_format('I'+ str(i+1) + ':I' + str(i+1), {'type': 'cell',
'criteria': '=',
'value': importance.strip()
'format': color_d[importance.strip()] })
Причём строка 'format': color_d[importance.strip()]
отрабатывает с переменной и значение подхватывает.
Вне цикла (пример ниже) всё работает нормально, но без цикла код становится слишком большим, потому что значений может быть много.
worksheet.conditional_format('I2:I'+str(len(df_s)+1), {'type': 'cell',
'criteria': '=',
'value': val_of_cell_6,
'format': color_d[val_of_cell_6] })
Ниже все импорты:
import requests
import json
import pandas as pd
import numpy as np
import os
import locale
os.environ["PYTHONIOENCODING"] = "utf-8"
import urllib.request
from urllib.parse import quote
import string