You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

pandas使用apply lambda修改列值时条件不满足如何保留原有数据

实现方案

有两种常用的实现方式,更推荐第一种,执行效率远高于apply遍历:

  • 方式1:使用loc条件赋值(最优)
    只对满足条件的行做赋值操作,不满足条件的行完全保留原有内容,无需额外else逻辑:
df.loc[df['Q8_3'] >= 3, 'test'] = 'serial'
  • 方式2:如果必须用lambda+apply实现
    需要改为按行遍历,在else分支返回test列的原值即可:
# axis=1表示按行遍历,lambda的row参数可以取到同一行的所有列值
df['test'] = df.apply(lambda row: 'serial' if row['Q8_3'] >=3 else row['test'], axis=1)

注意:如果test列是首次创建、不存在原有值,使用方式2前需要先对test列做初始化赋值,否则会报列不存在的错误。

内容的提问来源于stack exchange,提问作者fredooms

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 04:12:00