我有一个具有以下结构的数据框:
0 1 2
0 0.00086076 500.00000000 []
1 0.00086075 819.00000000 []
2 0.00086072 1162.00000000 []
3 0.00086071 20.00000000 []
4 0.00086069 10170.00000000 []
5 0.00086067 18.00000000 []
Run Code Online (Sandbox Code Playgroud)
然后我有另一个带有更新值的数据框:
0 1 2
0 0.00086071 50.00000000 []
1 0.00086068 81.00000000 []
Run Code Online (Sandbox Code Playgroud)
它在第 0 列上排序,我需要将两者合并,如下所示:
0 1 2
0 0.00086076 500.00000000 []
1 0.00086075 819.00000000 []
2 0.00086072 1162.00000000 []
3 0.00086071 50.00000000 []
4 0.00086069 10170.00000000 []
5 0.00086068 81.00000000 []
6 0.00086067 18.00000000 []
Run Code Online (Sandbox Code Playgroud)
因此,如果某个值与第 0 列中的一个匹配,则应更新第 1 列,否则应插入新行并再次排序。
是否有有效的方法或预定义函数来执行此操作?
jez*_*ael 11
我认为你需要:
concat两者DataFrame在一起drop_duplicates用于删除列中具有相同值的原始行0sort_values按列0reset_index对于唯一索引值df = (pd.concat([df1, df2])
.drop_duplicates([0] , keep='last')
.sort_values(0 , ascending=False)
.reset_index(drop=True))
print (df)
0 1 2
0 0.000861 500.0 []
1 0.000861 819.0 []
2 0.000861 1162.0 []
3 0.000861 50.0 []
4 0.000861 10170.0 []
5 0.000861 81.0 []
6 0.000861 18.0 []
Run Code Online (Sandbox Code Playgroud)