因此,首先, 大熊猫使用index更新
。当更新命令不更新任何内容时,请同时检查左侧和右侧。如果由于某种原因您懒于更新索引以遵循标识逻辑,则可以按照以下步骤进行操作:
>>> df.loc[df.filename == 'test2.dat', 'n'] = df2[df2.filename == 'test2.dat'].loc[0]['n']>>> dfOut[331]: filename m n0 test0.dat 12 None1 test2.dat 13 16
如果要对整个表执行此操作,建议使用一种我认为优于上述方法的方法:由于您的标识符为
filename,请设置
filename为索引,然后
update()根据需要使用。两者
merge和
apply()方法都包含不必要的开销:
>>> df.set_index('filename', inplace=True)>>> df2.set_index('filename', inplace=True)>>> df.update(df2)>>> dfOut[292]: m nfilenametest0.dat 12 Nonetest2.dat 13 16


