Python中的虚拟变量(dummy variables)

来源:互联网 发布:ubuntu chmod 755 编辑:程序博客网 时间:2024/06/07 09:24

虚拟变量(dummy variables)

虚拟变量,也叫哑变量和离散特征编码,可用来表示分类变量、非数量因素可能产生的影响。

① 离散特征的取值之间有大小的意义
例如:尺寸(L、XL、XXL)
离散特征的取值有大小意义的处理函数map
pandas.Series.map(dict)
参数 dict:映射的字典

② 离散特征的取值之间没有大小的意义

pandas.get_dummies

例如:颜色(Red,Blue,Green)

处理函数:

get_dummies(data,prefix=None,prefix_sep="_",dummy_na=False,columns=None,drop_first=False)

① data   要处理的DataFrame
② prefix 列名的前缀,在多个列有相同的离散项时候使用
③ prefix_sep 前缀和离散值的分隔符,默认为下划线,默认即可
④ dummy_na 是否把NA值,作为一个离散值进行处理,默认为不处理
⑤ columns 要处理的列名,如果不指定该列,那么默认处理所有列
⑥ drop_first 是否从备选项中删除第一个,建模的时候为避免共线性使用

# -*- coding: utf-8 -*-import pandasdata = pandas.read_csv(    'D:\\PDA\\4.18\\data.csv',     encoding='utf8')data['Education Level'].drop_duplicates()"""博士后    Post-Doc博士      Doctorate硕士      Master's Degree学士      Bachelor's Degree副学士    Associate's Degree专业院校  Some College职业学校  Trade School高中      High School小学      Grade School"""educationLevelDict = {    'Post-Doc': 9,    'Doctorate': 8,    'Master\'s Degree': 7,    'Bachelor\'s Degree': 6,    'Associate\'s Degree': 5,    'Some College': 4,    'Trade School': 3,    'High School': 2,    'Grade School': 1}data['Education Level Map'] = data[    'Education Level'].map(    educationLevelDict)data['Gender'].drop_duplicates()dummies = pandas.get_dummies(    data,     columns=['Gender'],    prefix=['Gender'],    prefix_sep="_",    dummy_na=False,    drop_first=False)dummies['Gender'] = data['Gender']