Python 如何用另一个数据帧更新一个数据帧(更新旧数据并添加新数据)

Python 如何用另一个数据帧更新一个数据帧(更新旧数据并添加新数据),python,pandas,dataframe,Python,Pandas,Dataframe,df1和df2具有相同的数据结构。我想在匹配“key”值时用df2更新df1的记录,并且在df1中不存在“key”值时将df2中的记录添加到df1中,我应该使用什么样的函数?谢谢 df列:受让人id issuetype键 df1: df2: 使用df2更新后的df1: assignee id issuetype key Tom 1 story TP-1 Anna 2 bug TP-2 Tim 3 bug TP-3 Jane

df1和df2具有相同的数据结构。我想在匹配“key”值时用df2更新df1的记录,并且在df1中不存在“key”值时将df2中的记录添加到df1中,我应该使用什么样的函数?谢谢

df列:受让人id issuetype键

df1:

df2:

使用df2更新后的df1:

assignee id issuetype key
Tom       1    story  TP-1 
Anna      2    bug    TP-2 
Tim       3    bug    TP-3 
Jane      4    bug    TP-4
用于:

或与:


为什么不直接用df2替换df1呢?
assignee id issuetype key
Tom       1    story  TP-1 
Anna      2    bug    TP-2 
Tim       3    bug    TP-3 
Jane      4    bug    TP-4
assignee id issuetype key
Tom       1    story  TP-1 
Anna      2    bug    TP-2 
Tim       3    bug    TP-3 
Jane      4    bug    TP-4
df = pd.concat([df2, df1]).drop_duplicates(subset=['key'])
print (df)
  assignee  id issuetype   key
0      Tom   1     story  TP-1
1     Anna   2       bug  TP-2
2      Tim   3       bug  TP-3
3     Jane   4       bug  TP-4
cols = df1.columns
df1 = df1.set_index('key')
df2 = df2.set_index('key')
df1 = df1.reindex(columns=df1.columns.union(df2.columns, sort=False),
                  index=df1.index.union(df2.index, sort=False))

df1.update(df2)
df1 = df1.reset_index().reindex(columns=cols)
print (df1)

  assignee   id issuetype   key
0      Tom  1.0     story  TP-1
1     Anna  2.0       bug  TP-2
2      Tim  3.0       bug  TP-3
3     Jane  4.0       bug  TP-4