Создать новый столбец используя данные из двух DataFrame

import pandas as pd

df1 = pd.DataFrame({'id': [111, 222, 333, 444, 555, 666],
    'type': ['A', 'B', 'C', 'A', 'B', 'C'], 
    'sum': [8, 12, 19, 20, 15, 8], 
    'count': [4, 5, 2, 6, 10, 5]})
df2 = pd.DataFrame({'type': ['A', 'B', 'C'], 'price1': [6, 8, 6],'price2': [10, 15, 11]})

Есть две таблицы и нужно добавить новый столбец в df1 по формуле sum*price1+count*priceq2.
Можно как-то это сделать не объединяя таблицы .merge()?


Ответы (1 шт):

Автор решения: Алексей Р

Делаем из df2 словарь, потом перемножаем это все в методе apply для df1

d = df2.set_index('type').to_dict()
df1['result'] = df1.apply(lambda x: x['sum'] * d['price1'][x['type']] + x['count'] * d['price2'][x['type']], axis=1)
print(df1)
    id type  sum  count  result
0  111    A    8      4      88
1  222    B   12      5     171
2  333    C   19      2     136
3  444    A   20      6     180
4  555    B   15     10     270
5  666    C    8      5     103
→ Ссылка