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

如何将Pandas DataFrame指定列中匹配列表的数值替换为指定值

Pandas DataFrame指定列匹配列表值批量替换方案

需求说明

将DataFrame中C列的所有值,若存在于int_cells列表中则统一替换为数值100,无需手动写for循环实现,Pandas原生矢量化操作效率更高、代码更简洁。

示例基础代码

import pandas as pd

df = pd.DataFrame({'A': [0, 1, 2, 3, 4, 2, 5, 8, 0, 1],
               'B': [5, 6, 7, 8, 9, 4, 5, 2, 6, 7],
               'C': [3, 5, 72, 74, 8, 3, 53, 21, 2, 36]})

int_cells = [72, 74, 8, 3, 53]

可行实现方法

方法1:使用loc索引定位(最推荐)

通过isin()方法生成布尔掩码,直接定位符合条件的行赋值:

df.loc[df['C'].isin(int_cells), 'C'] = 100

方法2:使用where条件替换

where方法保留满足条件的原值,不满足条件的替换为指定值:

# ~ 是布尔值取反运算符
df['C'] = df['C'].where(~df['C'].isin(int_cells), 100)

方法3:使用replace批量映射替换

将待替换的值和目标值生成映射字典,直接批量替换:

# dict.fromkeys 快速生成 {72:100,74:100,...} 格式的映射字典
df['C'] = df['C'].replace(dict.fromkeys(int_cells, 100))

运行结果

替换完成后df的C列值为:[100, 5, 100, 100, 100, 100, 100, 21, 2, 36]


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 23:54:02