我有 Pandas Dataframe df1作为:
ID | c1 | c2 | c3 ----------------- 1 | A | B | 32 2 | C | D | 34 3 | A | B | 11 4 | E | F | 3
和df2:
ID | c1 | c2 ------------ 1 | A | B 2 | C | D 3 | E | F
列 (c1, c2) 上的df1和df2之间存在外键。加入看起来像:
pd.merge(df1, df2, left_on=['c1','c2'], right_on = ['c1','c2'])
结果是:
ID_x| c1 | c2 | c3 | ID_y ------------------------- 1 | A | B | 32 | 1 2 | C | D | 34 | 2 3 | A | B | 11 | 1 4 | E | F | 3 | 3
我想用df2.id替换df1中的 (c1,c2) 。预期的最终 df1 是:
ID| c3 | df2_id --------------- 1 | 32 | 1 2 | 34 | 2 3 | 11 | 1 4 | 3 | 3
换句话说,我想在 df1 中添加列“df2_id”(用该行的 df2.id 值填充)并删除列(c1,c2)(不再需要它们)。
我有想法通过以下方式做到这一点:
- 将合并结果保存到 df1
- 删除不必要的列 (c1,c2)
- 将“ID_y”重命名为“df2_id”,将“ID_x”重命名为“ID”
有没有更好的解决方案?