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

pandas新增列时使用函数正常运行,不用函数却报错是什么原因?

错误原因

  1. data['Family Size']是Pandas的Series(整列数据)类型,执行data['Family Size'] == 0得到的是一整列布尔值,Python原生的if语句只能判断单个布尔值的真假,无法处理整列布尔值的判断逻辑,因此触发了真值模糊的ValueError。
  2. data['Is Alone'].apply(0)的用法不符合规范,apply()方法需要传入可调用的函数对象,不能直接传入固定数值。

无需自定义函数的正确实现

以下两种写法都可以直接实现需求:

写法1:布尔值强转(最简洁,无额外依赖)

利用Python中布尔值True对应1、False对应0的特性,直接转换类型即可:

data['Is Alone'] = (data['Family Size'] == 0).astype(int)

写法2:np.where条件分支(适合扩展复杂逻辑)

import numpy as np
data['Is Alone'] = np.where(data['Family Size'] == 0, 1, 0)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 18:18:04