Python 在一个键上左连接,在另一列中左连接一个列值

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

如果我有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.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