EsDat - это пакет управления данными для мониторинга окружающей среды. Одна из его функций - вывод данных в таблицу Excel и затенение значений (ячеек), которые соответствуют или превышают рекомендованные значения (например, рекомендуемые пределы Всемирной организации здравоохранения) для данного параметра. Он может работать с несколькими наборами указателей и затеняет ячейку в соответствии с указанием с превышением максимального значения.
Пример вывода типа EsDat:
У меня есть сценарий python , который будет применять стилизацию на основе одного набора рекомендаций, но не выяснил, как применять стили с использованием нескольких наборов рекомендаций.
Я думаю, мне нужно создать список словарей руководящих указаний:
import pandas as pd
guidelines={"CEPA_FW": {'Ag':0.05,'As' :0.05 ,'Ba':1.0,'B':1.0,'Cd' :0.01 ,'Cr' :0.05 ,'Co':0.001,'Cu' :1.0 ,'K':5.0,'Pb' :0.005 ,'Hg' :0.0002 ,'Mn':0.5,'Ni' :1.0 ,'Se':0.01,'Sn':0.5,'SO4':400.0,'Zn' :5.0},
"ANZECC_Stock":{'Ca' :1000, 'SO4' :1000 ,'Al' :5.0,'As' :0.5, 'Cd' :0.01,'Cu' :0.4, 'Pb' :0.1, 'Hg' :0.002, 'Mo' :0.15,'Se':0.02,'Ni' :1.0, 'U' :0.2,'Zn' :20, 'F':2.0, 'Co':1.0, 'Cr':1.0, 'B':5.0},
"ANZECC_FW": {'Ag':0.00005,'Al' :0.055 ,'As' :0.013 ,'B':0.37,'Cd' :0.0002 ,'Cr' :0.001 ,'Cu' :0.0014 ,'Pb' :0.0034 ,'Hg' :0.0006 ,'Mn':1.9,'Ni' :0.011 ,'Se':0.011,'Zn' :0.008}}
df=pd.DataFrame.from_records(guidelines).T
df
Out[1]:
Ag Al As B Ba Ca Cd ... Ni Pb SO4 Se Sn U Zn
ANZECC_FW 0.00005 0.055 0.013 0.37 NaN NaN 0.0002 ... 0.011 0.0034 NaN 0.011 NaN NaN 0.008
ANZECC_Stock NaN 5.000 0.500 5.00 NaN 1000.0 0.0100 ... 1.000 0.1000 1000.0 0.020 NaN 0.2 20.000
CEPA_FW 0.05000 NaN 0.050 1.00 1.0 NaN 0.0100 ... 1.000 0.0050 400.0 0.010 0.5 NaN 5.000
, затем l oop через них, применяя функцию fill_exceedances (которая также должна будет выбирать уникальный цвет для каждого словарь) и только потом пишите to_excel.
У меня есть навык basi c python, но я полный нуб с VBA. Решение python было бы хорошо, но решение VBA позволило бы моим коллегам, не являющимся python, использовать этот инструмент. Как последовательно применить затенение, сохраняя ранее затененные ячейки?