还是最近的那个项目,最后收尾阶段遇到这样一个问题:
根据表格每一行某几列的数据进行条件筛选后并生成新的一列数据。
像下面这个示例一样👇:

需要根据每一行的“ 生日”,“地址”,“保险”是否有值来生成新的一列字段,比如叫“完整度”字段。
就拿王佳来说,因为他的 “保险”字段是空值,但是“地址”和“生日”有对应的值。那么最后新字段 “完整度”这里就要填入 “比较完整” 四个字。同理,李明的“完整度” 就应该是“很完整”;胡曦就是“不完整”;最后章杰就是“很完整”。
看起来是个比较简单的多列条件筛选问题,熟悉pandas的朋友肯定会说 “直接写一个IF-ELSE的 筛选函数后再在该DataFrame里面用apply应用即可解决。” 貌似是这么回事,掌柜一开始也是这么想的,但是写了后实际运行出现了如下报错:

回看上面的数据发现有两行存在 NaN值的情况,所以出现了如上报错。。。
于是再次借助强大的搜索引擎谷歌后发现了 用np.select方法解决更高效:

在项目收尾阶段,遇到需要根据Excel表格每行的'生日','地址','保险'列数据进行条件筛选并生成'完整度'新列的问题。通过使用np.select方法,可以高效解决多列条件筛选问题,避免了因NaN值导致的错误。同样,对于一列数据的条件筛选,可以使用np.where。分享的解决方案有助于简化此类问题的处理。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



