我有df1
:
id, colA, colB, colC, name
1, 1, 2, 3, a
2, 2, 3, 4, a
3, 3, 4, 5, b
4, 4, 5, 6, b
和df2
:
id, colA, colB, colD, name
2, 10, 20, D1, a
3, 20, 30, D2, a
是否有办法,可能使用merge
或join
将df
中的行替换为匹配df2
和id
的{{1}} < / p>
所以结果如下:
name
我在考虑类似:id, colA, colB, colC, name, colD
1, 1, 2, 3, a, N/A
2, 10, 20, N/A, a, D1
3, 3, 4, 5, b, N/A
4, 4, 5, 6, b, N?A
,但只匹配一列。
答案 0 :(得分:0)
你可以:
df = pd.concat([df1, df2]).drop_duplicates(subset=['id', 'name'], keep='last').drop_duplicates(subset='id')
将两个DataFrame
合并,并保留来自id
的重复name
和df2
,并从{{id
中删除df2
s 1}}你不想保留。