合并和求和两个匹配python pandas的数据帧

时间:2016-01-22 19:23:36

标签: python pandas

我可能正在接近这是错误的方式。如果我有两个数据帧a和b:

Dataframe A:

a b c
1 2 4
1 6 5
1 8 7

和Dataframe B:

a b c d
1 2 4 9
1 6 5 7
1 8 7 10

我希望加入它们,但是要对列名称匹配的列进行粗略的总结,并保留不匹配的列名称。所以最终的连接表看起来像:

a   b   c   d
2   4   8   9
2   12  10  7
2   16  14  10

注意:索引总是匹配的(即相同顺序的记录数相同)

2 个答案:

答案 0 :(得分:5)

您可以在另一个df中传递的较大df上拨打add并致电fillna

.box

另一种方法是使用combine_first

z-index

答案 1 :(得分:2)

您可以对齐数据框,将NAN填充为0并执行简单的添加。

d = pd.DataFrame(data, columns=['a','b','c'])
d2 = pd.DataFrame(data2, columns=['a','b','c','d'])
d, d2 = d.align(d2, fill_value=0)
sum_df = d + d2

In [23]: d
Out[23]: 
   a  b  c  d
0  1  2  4  0
1  1  6  5  0
2  1  8  7  0

In [24]: d2
Out[24]: 
   a  b  c   d
0  1  2  4   9
1  1  6  5   7
2  1  8  7  10

In [25]:sum_df
Out[25]: 
   a   b   c   d
0  2   4   8   9
1  2  12  10   7
2  2  16  14  10