如何在python中比较2个数据帧中的值并在公共变量中添加值

时间:2017-10-25 14:16:18

标签: python-3.x pandas

我在python中有2个数据帧df1和df2,它们具有相同的变量编号和名称。我想比较变量A中的值,如果值匹配,则应添加C中的相应值。

df1
A      B      C
5717   2      10
6417   2      12
7417   2      11
8417   2      15

df2
A      B      C
5717   2      12
6417   2      16
7417   2      18
8417   2      20

resulting df
A      B      C
5717   2      22
6417   2      28
7417   2      29
8417   2      35

2 个答案:

答案 0 :(得分:2)

我认为您需要set_index + DataFrame.add + reset_index

df = df1.set_index(['A','B']).add(df2.set_index(['A','B']), fill_value=0).reset_index()
print (df)
      A  B   C
0  5717  2  22
1  6417  2  28
2  7417  2  29
3  8417  2  35

答案 1 :(得分:0)

使用merge

df=df1.merge(df2,on=['A','B'],how='left').fillna(0)

df.assign(C=df['C_x']+df['C_y']).drop(['C_x','C_y'],1)

Out[235]: 
      A  B   C
0  5717  2  22
1  6417  2  28
2  7417  2  29
3  8417  2  35