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

如何基于条件将pandas DataFrame指定列的值写入另一列

代码问题修正

你的原有代码存在三处可优化/错误点:

  • 列名拼写错误:Costomer应为Customer
  • np.select第二个参数要求传入和条件列表长度匹配的取值列表,直接传入Series会触发参数格式错误
  • 原逻辑中default=''会将Call Ref为Enterprise/Client的行值覆盖为空,不符合保留原值的需求

修正后的np.select实现

import numpy as np

df_OCB['Call Ref'] = np.select(
    condlist = [~df_OCB['Call Ref'].isin(['Enterprise', 'Client'])],
    choicelist = [df_OCB['Customer']],
    default = df_OCB['Call Ref']
)

注:这里用isin替代多条件逻辑与判断,写法更简洁。

更易读的Pandas原生实现(无需引入numpy)

# 生成需要替换的行掩码
replace_mask = ~df_OCB['Call Ref'].isin(['Enterprise', 'Client'])
# 定位目标行直接赋值
df_OCB.loc[replace_mask, 'Call Ref'] = df_OCB.loc[replace_mask, 'Customer']

该写法逻辑更直观,运行效率也优于np.select的单条件场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 01:36:01