假设以下数据帧
DF1型:

id    data1
1     10
2     200
3     3000
4     40000

DF2型:
id1    id2    data2
1      2      210
1      3      3010
1      4      40010
2      3      3200
2      4      40200
3      4      43000

我想要新的DF3:
id1    id2    data2    data11    data12
1      2      210      10        200
1      3      3010     10        3000
1      4      40010    10        40000
2      3      3200     200       3000
2      4      40200    200       40000
3      4      43000    3000      40000

在熊猫身上,正确的方法是什么?
编辑:请不要任意指定数据。我选择这个特定的数据只是为了显示所有数据的来源,但是每个数据元素与任何其他数据元素都没有关联。
其他数据帧示例,因为第一个数据帧不够清晰:
DF4型:
id    data1
1     a
2     b
3     c
4     d

df5型:
id1    id2    data2
1      2      e
1      3      f
1      4      g
2      3      h
2      4      i
3      4      j

我想要新的DF6:
id1    id2    data2    data11    data12
1      2      e        a         b
1      3      f        a         c
1      4      g        a         d
2      3      h        b         c
2      4      i        b         d
3      4      j        c         d

编辑2:
data11和data12只是data1的副本,具有相应的idid1id2

最佳答案

1.首先使用id1和id列合并数据帧
2.将data1重命名为data11
三。删除ID列
四。现在在id2和id上合并df1和df3

df3 = pd.merge(df2,df1,left_on=['id1'],right_on=['id'],how='left')
df3.rename(columns={'data1':'data11'},inplace=True)
df3.drop('id',axis=1,inplace=True)

df3 = pd.merge(d3,df1,left_on=['id2'],right_on=['id'],how='left')
df3.rename(columns={'data1':'data12'},inplace=True)
df3.drop('id',axis=1,inplace=True)

我希望它能解决你的问题

10-08 17:51