df_a
和df_b
是两个数据帧,如下所示
df_a
A B C D E
x1 Apple 0.3 0.9 0.6
x1 Orange 0.1 0.5 0.2
x2 Apple 0.2 0.2 0.1
x2 Orange 0.3 0.4 0.9
x2 Mango 0.1 0.2 0.3
x3 Orange 0.3 0.1 0.2
df_b
A B_new F
x1 Apple 0.3
x1 Mango 0.2
x1 Orange 0.1
x2 Apple 0.2
x2 Orange 0.3
x2 Mango 0.1
x3 Orange 0.3
x3 Mango 0.2
x3 Apple 0.1
我希望我的final_df
包含df_a
中包含的所有行,以便它考虑df_a['A'] == df_b['A']
和df_a['B'] == df_b['B_new']
的唯一组合。
我试过进行外部连接,然后在final_df
中删除w.r.t列A和B的重复项,但B_new的值不会被保留。
下面是我希望我的result_df
看起来的样子:
结果数据框
A B C D E B_new F
x1 Apple 0.3 0.9 0.6 Apple 0.3
x1 Orange 0.1 0.5 0.2 Orange 0.1
x2 Apple 0.2 0.2 0.1 Apple 0.2
x2 Orange 0.3 0.4 0.9 Orange 0.3
x2 Mango 0.1 0.2 0.3 Mango 0.1
x3 Orange 0.3 0.1 0.2 Orange 0.3
我还尝试了左外连接:
final_df = pd.merge(df_a, df_b, how="left", on=['A'])
这个数据帧的大小是df_a
和df_b
的联合,这不是我想要的。
谢谢你的建议。
您仍然可以使用非常理想的左连接来实现这一点。
见下文:
您需要一个内部合并,在每种情况下都指定和合并列:
相关问题 更多 >
编程相关推荐