import pandas as pd
df = pd.DataFrame([
['green', 'M', 10.1, 'class1'],
['red', 'L', 13.5, 'class2'],
['blue', 'XL', 15.3, 'class1']])
#numpy添加列表名称 (记下这种手法:先通过pd.DataFrame()添加数据,再用columns()补充列名)
df.columns = ['color', 'size', 'prize', 'class label']
df
先用比较简单的映射字典法来对离散属性进行处理
'''
把标签转换成数值型 这样的连续化将没有顺序关系的类别变成具有顺序关系0,1,2等,
同时也导致了不同类别之间的距离不相等,简单的用L1范式,0-1距离为1,0-2距离为2
'''
class_mapping = {label:idx for idx,label in enumerate(set(df['class label']))}
'''
df['class label']
输出:
0 class1
1 class2
2 class1
Name: class label, dtype: object
set(df['class label'])
输出:
{'class1', 'class2'}
是把df['class label']里面的数据装到一个集合里面,并且自动去除重复项
for idx,label in enumerate(set(