Concat数据框行明智,如果存在则合并行

时间:2019-11-23 20:05:36

标签: python pandas dataframe

我有两个数据框:

Df_1:

  A  B  C  D   
1 10 nan 20 30
2 20 30 20 10

Df_2:

  A  B 
1 10 40
2 30 70

我想将它们合并,并得到最终的数据框。

  A  B  C  D
1 10 40 20 30
2 20 30 20 10
3 30 70 nan nan

我该怎么做?

1 个答案:

答案 0 :(得分:0)

我认为,根据预期结果, Df_2 第二行中的索引 应该是 3 (而不是 2 )。

运行Df_1.combine_first(Df_2)

结果是:

      A     B     C     D
1  10.0  40.0  20.0  30.0
2  20.0  30.0  20.0  10.0
3  30.0  70.0   NaN   NaN

即由于可能的 NaN 值,列的类型被强制为 float

但是,如果需要,可以通过应用 to_numeric

来尽可能地还原它。
Df_1.combine_first(Df_2).apply(pd.to_numeric, downcast='integer')