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

Python中如何对不在指定集合内的变量值进行重编码

Pandas 实现指定集合外值的重编码

假设你用Pandas处理这个数据列,下面是几种高效的实现方式:

1. 构造原始数据

先把给出的数据集转换成Pandas DataFrame:

import pandas as pd

df = pd.DataFrame({'a': ['Apple', 'Apple', 'Pear', 'Banana', 'Apple', 'Orange']})

2. 核心处理逻辑

指定需要保留的取值集合 {'Apple', 'Orange'},将不在集合内的值替换为'x',以下是三种常用方法:

方法一:使用where()方法

where()会保留满足条件的原值,不满足条件的替换为指定值:

keep_set = {'Apple', 'Orange'}
df['a'] = df['a'].where(df['a'].isin(keep_set), 'x')

方法二:使用mask()方法

mask()与where()逻辑相反,满足条件时替换为指定值,这里用~取反筛选不在集合内的元素:

keep_set = {'Apple', 'Orange'}
df['a'] = df['a'].mask(~df['a'].isin(keep_set), 'x')

方法三:使用replace()方法

先生成「非保留值→'x'」的映射字典,再批量替换:

keep_set = {'Apple', 'Orange'}
replace_map = {val: 'x' for val in df['a'].unique() if val not in keep_set}
df['a'] = df['a'].replace(replace_map)

处理后结果

执行任意一种方法后,得到的DataFrame如下:

a
0  Apple
1  Apple
2     x
3     x
4  Apple
5  Orange

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 17:35:57