handle non numerical data
为达坂城等地区用户提供了全套网页设计制作服务,及达坂城网站建设行业解决方案。主营业务为成都做网站、网站设计、达坂城网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!举个例子,将性别属性男女转换成0-1,精通ML的小老弟们可以略过本文~~,
这里不考虑稀疏向量的使用,仅提供一些思路。本来想直接利用pandas的DataFrame.iloc加上for循环直接转换,但试过一遍之后,原数据并有改变。。。。蛋疼写了一个比较 菜的函数,如下。
# 非数值列处理函数 def handel_non_numerical_data(df,name): #----------------name是需要处理的列名称(str),暂不考虑列表 nrows = len(df[name]) #----------------数据集的行数 old_col = df.columns.tolist() #----------------初始的列名集合 name_index = old_col.index(name) #---------要处理的列的在数据集中的索引值 name_data = df[name].values.tolist()#-----------将要处理烦人列复制成一个列表 df.drop([name],axis =1,inplace =True) unique_kinds = set(name_data) convert_dict = {}; x = 0 #构造对应种类数值转化字典 for i in unique_kinds: convert_dict[i] = x x += 1 def convert(val): return convert_dict[val] name_data = list(map(convert,name_data))#利用map函数直接迭代转化 new_col = df.columns.tolist() new_col.insert(name_index,name) df.reindex(columns = new_col) #----------------重构数据的列 df[name] = name_data