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

pandas如何基于其他列条件创建新列 附代码报错解决需求

错误原因排查

  • sf1.B.all是pandas内置方法,调用需要加括号sf1.B.all(),且该方法的作用是判断整列B的所有值都为真,无法实现逐行判断对应行B列是否为"US"的需求
  • 原有代码的if-else是全局分支逻辑,只会执行一次,不能逐行根据B列的值做不同处理

修正代码

方案1:使用numpy.where(性能最优,推荐)

适合这种简单的二分支逻辑,运行效率远高于逐行遍历

import numpy as np

sf1['OUTPUT'] = np.where(
    sf1['B'] == 'US',
    sf1['C'].astype(str).str[:5],
    sf1['C'].astype(str)
)

方案2:使用apply逐行处理(适合后续扩展更复杂的逻辑)

def handle_row(row):
    if row['B'] == 'US':
        return str(row['C'])[:5]
    return str(row['C'])

sf1['OUTPUT'] = sf1.apply(handle_row, axis=1)

两种方案运行后得到的OUTPUT列结果和你提供的示例完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 00:15:05