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