Python 如果一个数据帧的内容存在于另一个数据帧中,则减去/添加现有值

Python 如果一个数据帧的内容存在于另一个数据帧中,则减去/添加现有值,python,python-3.x,pandas,dataframe,Python,Python 3.x,Pandas,Dataframe,这里有两个数据帧 df1: df2: 生成的数据帧应该如下所示 结果: Index Number Name Amount Curr_amount 0 123 John 31 31 1 124 Alle 33 68 2 312 Amy 33 46 3 314 Holly 35 35 4 317 Jack 53 我尝试过使用pandas-i

这里有两个数据帧

df1:

df2:

生成的数据帧应该如下所示

结果:

Index Number Name  Amount  Curr_amount
  0    123   John   31       31
  1    124   Alle   33       68
  2    312   Amy    33       46
  3    314   Holly  35       35
  4    317   Jack            53
我尝试过使用pandas-isin,但它只说明布尔值中的数字列是否存在。有什么方法可以有效地做到这一点吗?

与外部联接一起使用,然后添加(或 (如有必要):

Index Number Name  Amount
  0    312   Amy    13
  1    124   Alle   35
  2    317   Jack   53
Index Number Name  Amount  Curr_amount
  0    123   John   31       31
  1    124   Alle   33       68
  2    312   Amy    33       46
  3    314   Holly  35       35
  4    317   Jack            53
df = df1.merge(df2, on=['Number','Name'], how='outer', suffixes=('','_curr'))
df['Amount_curr'] = df['Amount_curr'].add(df['Amount'], fill_value=0)
print (df)
   Number   Name  Amount  Amount_curr
0     123   John    31.0         31.0
1     124   Alle    33.0         68.0
2     312    Amy    33.0         46.0
3     314  Holly    35.0         35.0
4     317   Jack     NaN         53.0