Python 在一个键上左连接,在另一列中左连接一个列值
如果我有2个panda df,我想让A在2个条件下左连接B,1)A.id=B.id 2)B.x_集中的A.x。有人能帮我吗 A: B: 最后一张表应如下所示:Python 在一个键上左连接,在另一列中左连接一个列值,python,python-3.x,pandas,join,left-join,Python,Python 3.x,Pandas,Join,Left Join,如果我有2个panda df,我想让A在2个条件下左连接B,1)A.id=B.id 2)B.x_集中的A.x。有人能帮我吗 A: B: 最后一张表应如下所示: id x detail 1 a x 2 b n 3 c j 如果使用pandas==0.25,您可以: 将值转换为列表 将列表分解为新行 使用pd.Merge B['x_集]]=B['x_集]].apply(lambda x:x.split(',')) B=B.explode('x_set') A.merg
id x detail
1 a x
2 b n
3 c j
如果使用
pandas==0.25
,您可以:
pd.Merge
B['x_集]]=B['x_集]].apply(lambda x:x.split(','))
B=B.explode('x_set')
A.merge(B,左上=['id','x'],右上=['id','x_set']))
出[11]:
id x x_集合详细信息
0 1 a x
1 2b n
2 3 c j
如果
pandasI,我不确定我是否在跟踪。你能发布你的最终数据帧是什么样子吗?@JuanC谢谢,我刚刚更新了,请帮我看一下。你能复制和粘贴文本而不是图像吗?非常感谢,但如果我有错误='dataframe'对象没有属性'explode'。我的机器上没有pySpark。那实际上只是pandas
的最新版本。我为旧版本发布了第二个解决方案,检查是否有效?
id x_set detail
1 a,b,c x
1 d y
2 a,c z
2 d m
2 b n
3 a i
3 b,c j
id x detail
1 a x
2 b n
3 c j