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(conv