高效的解决方案插入或更新行pandas

use*_*780 7 python pandas

我有一个具有以下结构的数据框:

              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

我认为你需要:


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)

  • @jo9k 他只是以较低的精度打印它们。不过信息还是在那里 (2认同)