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

如何在Python的Pandas DataFrame中将指定列的对象值替换为目标值

解决Pandas中replace方法不生效的问题

我来帮你搞定这个二分类编码的问题!先看看你代码里的几个问题:

  1. 字符串不匹配:你的DataFrame里income列的实际值是<=50和>50,但你在replace里写的是<=50K,这就导致找不到要替换的目标值,自然不会生效。
  2. 语法错误:第二个代码行里to_replace = "<=50K"]多了个多余的右括号,这会直接导致代码报错,根本执行不了。

下面给你几种正确的实现方式,任选一种都可以:

方法1:用字典批量替换(最简洁)

直接用字典映射目标值和替换后的值,同时确保字符串完全匹配:

# 如果你的数据里是<=50和>50
data["income"].replace({"<=50": 0, ">50": 1}, inplace=True)

# 要是实际数据里是<=50K和>50K(可能是输入笔误),就改成下面这样
# data["income"].replace({"<=50K": 0, ">50K": 1}, inplace=True)

方法2:用map函数映射

这种方式可读性也很强,适合简单的映射场景:

data["income"] = data["income"].map({"<=50": 0, ">50": 1})

方法3:用apply+lambda条件判断

如果以后有更复杂的判断逻辑,这种方式扩展性更好:

data["income"] = data["income"].apply(lambda x: 0 if x == "<=50" else 1)

另外提醒一下:尽量少依赖inplace=True,有时候Pandas的视图/副本机制会导致它不生效,像方法2、3那样直接重新赋值的方式更稳妥。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 06:21:19