Макрос / скрипт в стиле EsDat, который сравнивает концентрации с нормативными значениями? - PullRequest
0 голосов
/ 15 января 2020

EsDat - это пакет управления данными для мониторинга окружающей среды. Одна из его функций - вывод данных в таблицу Excel и затенение значений (ячеек), которые соответствуют или превышают рекомендованные значения (например, рекомендуемые пределы Всемирной организации здравоохранения) для данного параметра. Он может работать с несколькими наборами указателей и затеняет ячейку в соответствии с указанием с превышением максимального значения.

Пример вывода типа EsDat:

type of output required

У меня есть сценарий 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, использовать этот инструмент. Как последовательно применить затенение, сохраняя ранее затененные ячейки?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...