zoukankan      html  css  js  c++  java
  • 【数据预处理】如何将某一类别特征的极少数类别归为一类

    比如:有个10000样本的数据集,其中某个特征是包含有很多地名的类别特征,有的地名出现了很多次,但也有很多地名只出现了一次,现在想把这些只出现了一次的地名归为一类,然后这个类别特征经过one_hot编码之后维度会大大减少,后续处理也相对容易!

    废话不多说,直接上代码。。。

    import pandas as pd
    import numpy as np          
    df = pd.DataFrame(np.array(list('abcdcbaceebcabcdacbeaabcbfnaeb')).reshape(5,6),index=range(5),columns=['a','b','c','d','地名','f'])         
    
    
    def handle(data):
        
        # 将该特征的类别进行归类统计,返回数据类型为series,index为所有的类别,value为每个类别对应的个数
        feature_count = data['地名'].value_counts()  
        l = len(feature_count.values)
        small_list=[]  # 将样本个数只有1的类别放进列表
        for i in range(l):
            if feature_count.values[i]==1:
                small_list.append(feature_count.index[i])   # 
    
        
        m = len(data)
        feature_values=data['地名'].values
        for j in range(m):
            for i in small_list:
                if i==feature_values[j]:
                    feature_values[j]='少数'
        data['地名']=feature_values
        return data
        
    handle(df)
  • 相关阅读:
    数组的简单操方法
    Java Script 流程控制语句(if判断、switch选择和循环)
    HTML,表单
    CSS盒子定位
    CSS基础选择器简单介绍
    java操作redis
    ios选择城市
    格式化java对象为json
    java冒泡排序法
    mongoDB group分组
  • 原文地址:https://www.cnblogs.com/lmcltj/p/11100482.html
Copyright © 2011-2022 走看看