У меня есть два кадра данных, DF1 и DF2, DF1 - мастер, который хранит любую дополнительную информацию из DF2.
Допустим, DF1 имеет следующий формат,
Item Id | item | count
---------------------------
1 | item 1 | 2
2 | item 2 | 3
1 | item 3 | 2
3 | item 4 | 5
DF2 содержит 2 элемента, которые уже присутствовали в DF1, и две новые записи. (itemId и item рассматриваются как одна группа, могут рассматриваться как ключ для объединения)
Item Id | item | count
---------------------------
1 | item 1 | 2
3 | item 4 | 2
4 | item 4 | 4
5 | item 5 | 2
Мне нужно объединить два кадра данных так, чтобы существующее количество элементов увеличивалось, а новые элементы вставлялись.
Результат должен быть таким:
Item Id | item | count
---------------------------
1 | item 1 | 4
2 | item 2 | 3
1 | item 3 | 2
3 | item 4 | 7
4 | item 4 | 4
5 | item 5 | 2
У меня есть один способ добиться этого, но я не уверен, что это эффективно или правильно
temp1 = df1.join(temp,['item_id','item'],'full_outer') \
.na.fill(0)
temp1\
.groupby("item_id", "item")\
.agg(F.sum(temp1["count"] + temp1["newcount"]))\
.show()