Как превратить 3D-словарь в серию 2D-кадров с l oop? - PullRequest
0 голосов
/ 01 февраля 2020

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

PQ1=pd.DataFrame()
for p_m in VAR1: # sales
    PQ1.loc[p_m,'Volume'] = round(model.calc['P01',p_m](), 2)
    PQ1.loc[p_m,'Quality'] = sum(model.mix3['P01',b_n,p_m]()*mix[b_n][p_m]*q[b_n]['Quality'] for b_n in 
    MIX)/ PQ1.loc[p_m,'Volume']
    ...
PQ2 = pd.DataFrame() 
for p_m in VAR1: # sales
    PQ2.loc[p_m,'Volume'] = round(model.prods['P02',p_m](), 2)...

, а затем создавал или экспортировал эти данные для отдельных кадров. Это хорошо, если у вас есть только 2 или 3 места. Я ищу более разумный путь к этому, где я могу установить для l oop как:

for l_c in LOCATIONS:
   for p_m in VAR1:
       PQ[l_c].loc[p_m,'Volume'] = round(model.calc[l_c,p_m](),2)
       PQ[l_c].loc[p_m,'Quality'] = sum(model.mix3[l_c,b_n,p_m]()*mix[b_n][p_m]*q[b_n]['Quality']\
       for b_n in MIX)/ PQ[l_c].loc[p_m,'Volume']

, чтобы впоследствии я мог использовать для циклов для визуализации / экспорта данных. Построить трехмерный фрейм данных просто, однако после его создания я изо всех сил пытаюсь преобразовать его обратно в желаемый 3-мерный фрейм данных. который я мог бы адресовать данные как PQ [l_ c, p_m, 'Volume'] и создать желаемое 2d местоположение, указывающее c данных.

Заранее благодарен за любую помощь. с уважением, p.


немного больше информации о том, как выглядит вывод: пример выходного кадра данных . на данный момент каждый из них генерируется вручную. взятие данных из расчета пиомо. однако я хочу быть более гибким, добавляя более высокое разрешение к модели, следовательно, имея больше местоположений или узлов, как эксперты называют это. так что, если бы я мог сгенерировать эти двумерные таблицы с нарезкой и нарезкой многомерных пиомодальных данных для l oop, это было бы чрезвычайно полезно для визуализации. если бы мне пришлось создать его немного более научным c: у меня есть результат модели pyomo, которая дает оптимизированный вывод, состоящий из множества 1000 дискретных значений, и я хотел бы l oop поверх некоторых из них, чтобы получить серию из 2-х мерных выходов x, f (x), которые я затем могу визуализировать с помощью диаграмм или линейных графиков в matplotlib. как показано в примере, в настоящее время я должен вручную исправить «P01», а затем отображать значения только для разных продуктов p_m с определенным «качеством». Когда я пытаюсь l oop через несколько 'P0i', выдается сообщение об ошибке:

KeyError: "None of [Index(['P01', 'Product1', 'Volume'], dtype='object')] are in the [index]"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...