Pandas中如何将item列计数≤1的低频次项替换为other
Pandas 低频次值替换实现方法
核心实现逻辑
- 第一步:统计
item列每个独立取值的出现频次 - 第二步:按照预设的频次阈值构建映射规则:频次达标的取值映射为自身,低于阈值的取值统一映射为
other - 第三步:将映射规则应用到
item列,直接生成新的result列
完整可运行代码
import pandas as pd df = pd.DataFrame({"item":['a','a','a','b','b','c','d']}) # 统计item列各值的出现频次 item_freq = df['item'].value_counts() # 自定义频次阈值:出现次数 > threshold 的值保留原值,其余替换 threshold = 1 # 构建映射字典 value_mapping = { item_val: item_val if freq > threshold else 'other' for item_val, freq in item_freq.items() } # 映射生成result列 df['result'] = df['item'].map(value_mapping)
运行输出结果
item result 0 a a 1 a a 2 a a 3 b b 4 b b 5 c other 6 d other
适配说明
- 直接修改
threshold变量即可调整替换规则,无需改动核心逻辑。例如设置threshold=2时,会将出现次数≤2的条目全部替换为other,对应输出为a值保留、b/c/d替换为other。 - 该实现对长文本类别、混合类型的类别列均有效,不受数据本身的类型限制。
内容的提问来源于stack exchange,提问作者william007
相关产品推荐
相关产品推荐

