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

如何使用pandas.DataFrame.replace将单元格内指定列表替换为单个值

Pandas替换列表类型单元格值的解决方案

错误原因

你原代码df2['lockdown_level'].replace([1,2],4)不符合预期的核心原因是:pandas的replace方法接收单层列表作为to_replace参数时,会将列表内的每个元素作为独立匹配目标,也就是把所有值为1、值为2的单元格替换为4,不会将整个列表[1,2]作为匹配对象。

可用解决方案

方案1:apply自定义匹配逻辑(兼容性最好,逻辑清晰)

直接逐行判断单元格的值是否和目标列表相等,符合条件则替换:

x = df2['lockdown_level'].apply(lambda val: 4 if val == [1,2] else val)

方案2:调整replace参数实现匹配

如果要继续使用replace方法,需要把要匹配的列表[1,2]作为外层列表的单个元素传入,明确告知pandas匹配的是整个单元格值:

x = df2['lockdown_level'].replace(to_replace=[[1,2]], value=4)

两种方案执行后,列的唯一值都会输出你期望的1、2、3、4、[2,3]、[1,2,3]。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 13:57:04