22、python数据处理虚拟变量的转化

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

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

例如:尺寸(L、XL、XXL)

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

例如:颜色

1  离散特征的取值之间有大小的意义的处理函数

    pamdas.Series.map(dict)

    离散特征的取值之间有大小意义的处理函数。
    dict 映射的字典
    
  
2 离散特征的取值之间没有大小的意义的处理函数

## 函数

pandas.get_dummies(data,prefix=None,prefix_sep='',dummy_na=False,columns=None,drop_first=False)

01 data: 要处理的DataFrame
02 prefix:列名的前缀,在多个列有相同的离散项时候使用

03 prefix_sep  前缀和离散值得分隔符,默认为下划线,莫惹即可

04 dummy_na  是否把NA值,作为一个离散值进行处理,默认不处理。

05 columns 要处理的列名,如果不指定该列,那么默认处理所有的列

06 drop_first  是否从备选项中删除第一个,建模的时候为避免共线性使用


3 案例:

import pandas

data=pandas.read_csv(
        'D:\\DATA\\pycase\\4.18虚拟变量\\data.csv',
            engine='python',
            sep=',',
            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)


02 性别去重(没有大小衡量)

data['Gender'].drop_duplicates()

# 无法进行大小比较的指标进行虚拟变量的转化和新增

dumies=pandas.get_dummies(
        data,
        columns=['Gender'],
        prefix=['Gender'],
        prefix_sep="_",
        dummy_na=False,
        drop_first=False
        )

data['Gender2']=dumies['Gender']

猜你喜欢

转载自blog.csdn.net/qq_36327687/article/details/84765983