假设以下数据帧
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
的副本,具有相应的idid1
或id2
最佳答案
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)
我希望它能解决你的问题