【发布时间】:2019-05-28 15:27:38
【问题描述】:
我有 Pandas 数据框 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
我想将 df1 中的 (c1,c2) 替换为 df2.id。 预期的最终 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”
有没有更好的解决方案?
【问题讨论】: