我有两个数据帧,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 包含 DF1 中已经存在的 2 个项目和两个新条目。 (itemId和item被认为是一个单独的组,可以作为join的key)
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()
原文由 Murali 发布,翻译遵循 CC BY-SA 4.0 许可协议
因为,这两个数据帧的架构相同,您可以执行
union
然后执行groupby
id 和aggregate
。