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

pandas如何遍历多列并按条件批量替换DataFrame单元格数值

解决方案

你完全不需要手动遍历每一列每一行做替换,pandas内置的replace方法原生支持全表批量匹配替换,仅需两步即可完成需求:

  1. 先定义映射关系字典:
value_map = {
    "1. No": 1,
    "2. Poor": 2,
    "3. Good": 3,
    "4. Excellent": 4
}
  1. 直接对整个DataFrame执行替换:
LTs_support = LTs_support.replace(value_map)

如果需要确保最终列的类型为整数,可以再加一步类型转换:

LTs_support = LTs_support.replace(value_map).astype(int)

原代码失效原因说明

你写的iteritems()遍历逻辑存在两个问题:

  • iteritems()返回的迭代元素是(列名, Series列对象),你直接拿整个列对象和单个字符串做相等判断,结果永远为False,不会触发替换逻辑
  • pandas的replace方法默认不是原地修改,需要将修改后的结果赋值回原变量/列才会生效

如果确实需要按列遍历实现,也可以参考下面的写法:

for col_name in LTs_support.columns:
    LTs_support[col_name] = LTs_support[col_name].map(value_map)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 19:39:03