如果 pandas DataFrame 中的另一列不为空,则将一列替换为另一列

新手上路,请多包涵

我正在使用 Pandas 处理数据框,如果另一个列值不为空,我必须在其中替换一个列。

我的数据框是这样的:

 v_4        v5             s_5     vt_5     ex_5          pfv           pfv_cat
0-50      StoreSale     Clothes   8-Apr   above 100   FatimaStore       Shoes
0-50      StoreSale     Clothes   8-Apr   0-50        DiscountWorld     Clothes
51-100    CleanShop     Clothes   4-Dec   51-100      BetterUncle       Shoes

所以,我想将 v_5 替换为 pfv 其中 pfv 不为空,我该如何实现?

原文由 Abdul Rehman 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 644
1 个回答

您应该考虑使用 numpy where 函数,它比所有 apply 方法运行得更快。

基本上 if else 向量的函数在哪里。第一个条目是一个带有条件的向量,第二个条目是 true 的值,第三个是 false 的值。这是它的样子:

 import numpy as np
df['v_5'] = np.where(~df['pfv'].isnull(),df['pfv'],df['v_5'])

祝你好运

原文由 YagoCaruso 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题