首页 > 解决方案 > 合并/附加具有不相等列的数据框,

问题描述

DataFrame 1(索引是日期

    date        Apple    Oranges ... Col100
    2020-01-01   9        10
    2002-01-02   5        12 
    ...
    2002-12-10   14       10

数据框 2

   date        Apple    Banana   Kiwi     Oranges... Col100
   2002-12-12   16       20       10        15

我想要 DataFrame 3 作为

    date        Apple    Oranges   Kiwi     Banana ..... Col100 
    2020-01-01   9        10         0         0
    2002-01-02   5        12         0         0
    ...
    2002-12-10   14       10         0         0
    2002-12-12   16       15        10        20

我努力了

df3 = df1.merge(df2, how = 'outer') 

它只是删除了我绝对需要的索引。

然后我尝试了

df3 = df1.merge(df2, how = 'outer',right_index=True, left_index=True) 

但这正在创建 Apple_x, Oranges_y 列,而不是实际附加到现有的 Apple 橙子。合并时我无法传递列名,因为我在两个 DF 中都有 100 列。

标签: pythonpandasdataframemerge

解决方案


尝试使用熊猫concat

res = pd.concat([df1,df2])

这将为您NaN提供没有日期的列。您可以将其替换为 0 作为您的预期输出,并将列转换回int

res.fillna(0).astype(int)

推荐阅读