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

如何在Python中就地替换DataFrame列值为对应数组元素?

就地替换Pandas DataFrame数字列为对应单词的简洁方案

已知你的DataFrame中color列是1-5的整数,且有对应单词数组colors,以下是两种最简就地替换方案:

方案一:利用replace方法(显式就地修改)

直接生成数字到单词的映射字典,调用replace并设置inplace=True完成就地修改:

df['color'].replace(dict(zip(range(1, 6), colors)), inplace=True)

原理:dict(zip(range(1,6), colors))生成{1: 'blue', 2: 'yellow', 3: 'red', 4: 'white', 5: 'black'}的映射字典,replace方法会将列中匹配的数字替换为对应单词,inplace=True确保直接修改原DataFrame。

方案二:数组索引直接赋值(更简洁)

利用数字与数组索引的偏移关系(数字=索引+1),直接取对应单词赋值给原列:

df['color'] = [colors[x-1] for x in df['color']]

如果处理大数据集,可使用向量化操作提升效率:

df['color'] = colors[df['color'].sub(1).to_numpy()]

原理:将每个数字减1得到数组的有效索引,直接提取对应单词并覆盖原列,同样是就地修改原DataFrame。

验证结果

执行上述任一方案后,你的DataFrame会变为:

code   color
0    A   white
1    B    blue
2    C  yellow
3    D   black
4    E    blue

内容的提问来源于stack exchange,提问作者Dario de Judicibus

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 05:30:47