我想将两个数据框与不同且重叠的列组合在一起:
df1
X a Y b c
A P 1 Q 21 1.135899
B P 2 Q 22 1.093204
C P 3 Q 23 2.035373
D P 4 Q 24 0.350060
E P 5 Q 25 -0.939962
df2
a b d
A 1 21 5.5
A 1 21 3.3
A 1 21 2.1
B 2 22 0.8
B 2 22 0.5
C 3 23 1.3
C 3 23 6.5
C 3 23 7.1
我想以这种方式组合两个数据框:
df3
a b c d
A 1 21 1.135899 5.5
A 1 21 1.135899 3.3
A 1 21 1.135899 2.1
B 2 22 1.093204 0.8
B 2 22 1.093204 0.5
C 3 23 2.035373 1.3
C 3 23 2.035373 6.5
C 3 23 2.035373 7.1
我怎样才能做到这一点?
尝试左合并。要维护索引,您需要在margereset_index
之前和set_index
之后使用。
res = df2.reset_index()\
.merge(df1, how='left')\
.set_index('index')\
.loc[:, ['a', 'b', 'c', 'd']]
print(res)
# a b c d
# index
# A 1 21 1.135899 5.5
# A 1 21 1.135899 3.3
# A 1 21 1.135899 2.1
# B 2 22 1.093204 0.8
# B 2 22 1.093204 0.5
# C 3 23 2.035373 1.3
# C 3 23 2.035373 6.5
# C 3 23 2.035373 7.1
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句