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

使用Lambda函数替换泰坦尼克号数据集Pclass列特殊值时报错求助

解决泰坦尼克号Pclass列替换'?'为'Unknown'的问题

错误原因

你写的lambda函数逻辑有误:lambda x: 'Unknown' if (df['Pclass'][x] == '?') else df['Pclass'][x] 里的x是Series的元素值(比如第一个元素是'3'),你用df['Pclass'][x]是试图把元素值当索引去取值,但你的DataFrame索引并非这些字符串,因此触发了错误。

正确写法

有几种简单的实现方式:

方法1:修正lambda逻辑

直接对元素值x判断,无需再通过索引取值:

df['Pclass'] = df['Pclass'].map(lambda x: 'Unknown' if x == '?' else x)

方法2:用replace方法(最简洁)

Pandas的replace方法专门用于值替换,代码更直观:

df['Pclass'] = df['Pclass'].replace('?', 'Unknown')

方法3:用where方法

where会保留满足条件的值,将不满足条件的替换为指定内容:

df['Pclass'] = df['Pclass'].where(df['Pclass'] != '?', 'Unknown')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 11:50:23