如何将一个dataframe的某列更新到另一个dataframe上

当要从一个dataframe中的某列去更新另一个dataframe的数据,且有一个mapping列index时,这块python不像sql可以方便的通过join去关联再去更新(也许通过对python引入sql模块可以实现)。
目前在python下,相对比较简单的方式是通过zip函数将共有列分别和更新列及被更新列绑定到一起,再通过字典里的update函数去解决。
ex:
分别创建df1和df2,现在要将df2中b列通过共有的ix列去更新df1中的b列
在这里插入图片描述
ans:

  1. 先用zip函数将ix列分别与两个b列相互绑定
    在这里插入图片描述
  2. 再将被更新的dict先放到一个空字典中,之后用update函数将要更新的dict去替换该字典对应的值
    在这里插入图片描述
  3. 最后将更新完的字典变成列返回给dataframe
    在这里插入图片描述
    上述方法比较容易理解,dataframe的方法有两种,第一种是:
    1.先重构index
    在这里插入图片描述

2.再用apply()构建lambda函数创建单独一列
在这里插入图片描述
3. 最后将这列给df1

在这里插入图片描述

第二种方法是先将df1和df2根据ix列匹配起来,再用fillna()函数将被替换的列填充到替换列中的NaN上

发布了69 篇原创文章 · 获赞 11 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/weixin_41636030/article/details/104402224