Вам нужно объединить манекены из Products
с манекенами из Operations
. Начните с определения выходных столбцов с помощью префикса:
columns = ['id', 'codoper'] + [f"Product_{cod}" for cod in A['Cod'].unique()] + ['valor']
Затем используйте get-макеты, как вы делали выше, но используйте тот же префикс для определения столбцов. Сгруппируйте по все столбцы, которые идеально коллинеарны , то есть id
, codoper
и valor
. Если они не совсем коллинеарны, вам нужно решить, как их агрегировать до уровня codoper
. Наконец, переиндексируйте, используя выходные столбцы, которые вы ранее определили, заполняя недостающие значения нулем.
pd.get_dummies(B, columns=['CodProd'], prefix='Product').groupby(['id', 'codoper', 'valor'], as_index=False).sum().reindex(columns=columns, fill_value=0)
id codoper Product_18 Product_22 Product_33 Product_55 Product_67 valor
0 1 00001 0 0 0 2 0 45000
1 2 00001 1 0 0 0 0 45000
2 3 00002 0 0 1 0 0 53000