【发布时间】:2019-05-02 03:13:37
【问题描述】:
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'] 的独特组合。
我已尝试进行外部联接,然后删除重复的 w.r.t 列 A 和 B 到 final_df,但 B_new 的值没有保留。
以下是我希望我的result_df 的样子:
结果_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 的联合,这不是我想要的。
感谢任何建议。
【问题讨论】:
标签: python pandas dataframe merge