加入两个数据帧。如果first的索引值与第二个匹配,则添加列值

时间:2016-07-28 12:56:42

标签: python pandas

我有两个数据帧,称为第1和第2。 1st有索引 - ' customer'。第二名也有索引 - '客户'有一些相似和一些不同的价值观。 第1列有列' P'和' Q'。第2列还有名称为“P'”的列。和' Q'。 我想加入两个数据帧,如果第一个索引值与第二个索引值匹配,则添加相应的值' P'和' Q'从B到' P'和' Q'第1 返回dataframe 1st

示例 第一个数据框是:

customer    P   Q
A         0.5   4
B         0.4   6
C         0.3   5
D         0.7   7

第二个数据框是:

customer    P   Q
B           4   20
D           5   21
E           6   22
F           7   23

输出应为:

Customer    P   Q   
A          0.5  4   
B          4.4  26  (6+20)
C          0.3  5   
D          5.7  28  (7+21)

1 个答案:

答案 0 :(得分:1)

np.random.seed([3,1415])
A = pd.DataFrame(np.random.rand(3, 2),
                 pd.Index(list('abc'),name='customer'),
                 list('PQ'))
B = pd.DataFrame(np.random.rand(3, 2),
                 pd.Index(list('bcd'),name='customer'),
                 list('PQ'))

A

enter image description here

B

enter image description here

(A + B).dropna()

enter image description here

解决方案

您要添加到A的IIUC,B的值B有一个共同的索引,否则只需要A的值。

A.add(B, fill_value=0).reindex_like(A)

enter image description here