如何合并两个数据帧并将空值替换为另一个?

vik*_*try 0 python merge dataframe pandas

我有两个数据框,它们有一些共同的列。例如,第一个数据帧:

A    B C D    G
null 1 2 3    6
4    5 6 null 7
Run Code Online (Sandbox Code Playgroud)

第二个:

A B C D E F
2 1 2 3 4 5
4 5 6 8 8 8
Run Code Online (Sandbox Code Playgroud)

如何组合它们以使空值消失并被第二个数据帧中的值替换?

A B C D E F G
2 1 2 3 4 5 6
4 5 6 8 8 8 7
Run Code Online (Sandbox Code Playgroud)

我尝试使用 concat 方法,但公共列没有重叠,而是添加到第一个数据帧的末尾。

result = pd.concat([df1, df2], axis=1, join='inner')
Run Code Online (Sandbox Code Playgroud)

Anu*_*bas 5

尝试通过combine_first()

out=df1.combine_first(df2)
Run Code Online (Sandbox Code Playgroud)

的输出out

     A      B   C   D       E   F   G
0   2.0     1   2   3.0     4   5   6
1   4.0     5   6   8.0     8   8   7
Run Code Online (Sandbox Code Playgroud)

如果需要使用链式astype()方法combine_first()

out=df1.combine_first(df2).astype(int)
Run Code Online (Sandbox Code Playgroud)

的输出out

    A   B   C   D   E   F   G
0   2   1   2   3   4   5   6
1   4   5   6   8   8   8   7
Run Code Online (Sandbox Code Playgroud)