Создать новый столбец используя данные из двух 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