如何通过重叠的列和索引合并两个数据帧?

时间:2019-07-12 19:21:27

标签: python pandas

假设我有两个重叠的列和索引名称的数据框,如下所示:

  A B C D
A 0 1 0 1
B 0 1 1 0
C 1 0 1 0
D 0 0 0 1

  A C D E
A 1 0 0 0
B 0 1 0 0
D 0 0 0 0
E 1 0 0 1

我想将这两个数据帧合并为一个,以便合并具有相同列和索引名称的单元格。最终结果应如下所示:

  A B C D E
A 1 1 0 1 0
B 0 1 1 0 0
C 1 0 1 0 0
D 0 0 0 1 0
E 1 0 0 0 1

我尝试使用Pandas.concat方法,但它仅沿其中一个轴连接。

2 个答案:

答案 0 :(得分:3)

怎么样:

(df1.add(df2, fill_value=0)
    .fillna(0)
    .gt(0)
    .astype(int))

输出:

    A   B   C   D   E
A   1   1   0   1   0
B   0   1   1   0   0
C   1   0   1   0   0
D   0   0   0   1   0
E   1   0   0   0   1

答案 1 :(得分:2)

alignnp.maximum

  • pandas.DataFrame.align将产生调用DataFrame和参数DataFrame的副本,它们的indexcolumn属性对齐,并以{{ 1个} {}中的两个tuple
  • 将两者都传递到numpy.maximum,这将很方便地认为它们是DataFrame对象,并返回具有适当最大值的新pandas.DataFrame

DataFrame