根据索引更新数据帧并附加新的数据帧

sta*_*kid 8 python pandas

DF1:

Id    val
1     4
3     7
9     2
4     5
Run Code Online (Sandbox Code Playgroud)

DF2:

Id    val
1     5
7     2
Run Code Online (Sandbox Code Playgroud)

需要:

Id    val
1     5
3     7
9     2
4     5
7     2
Run Code Online (Sandbox Code Playgroud)

我有这些df1和df2,我希望获得所需的df,其中Df1和Df2中的常见ID会更新,并且新的ID将被追加.

我似乎无法找到是否需要使用更新,合并或加入或其他东西.

cs9*_*s95 6

使用concatdrop_duplicates(注意,顺序可能不保).

pd.concat([df1, df2]).drop_duplicates('Id', keep='last')

   Id  val
1   3    7
2   9    2
3   4    5
0   1    5
1   7    2
Run Code Online (Sandbox Code Playgroud)


WeN*_*Ben 5

运用 combine_first

df2.set_index('Id').combine_first(df1.set_index('Id')).reset_index()
Out[6]: 
   Id  val
0   1  5.0
1   3  7.0
2   4  5.0
3   7  2.0
4   9  2.0
Run Code Online (Sandbox Code Playgroud)