我有两个数据帧df1和df2
df1
A B
id0 a 3
id1 b 4
id2 c 0
df2
A B
id2 aa 80
id3 d 44
id4 r 100
我想连接concat df1和df2,这样df1的所有行都被保留,如果df2中有相同索引的行(id2;在本例中);它从df2中掉落
最终的df看起来应该像
A B
id0 a 3
id1 b 4
id2 c 0
id3 d 44
id4 r 100
如何在pandas python中完成?
对
您可以使用combine_first
,它是专门为此操作设计的:
df1.combine_first(df2)
输出:
A B
id0 a 3
id1 b 4
id2 c 0
id3 d 44
id4 r 100
使用concat
与过滤器首先复制Index.duplicated
:
df = pd.concat([df1, df2])
df = df[~df.index.duplicated()]
print (df)
A B
id0 a 3
id1 b 4
id2 c 0
id3 d 44
id4 r 100