pandas.get_dummies函数用法详细解答(实践)

我们首先试一下dataframe

参考了他人博客的数据设置,其他很多是自己做的工作

import pandas as pd
df = pd.DataFrame([
            ['green' , 'A'],
            ['red'   , 'B'],
            ['blue'  , 'A']])
#我们这里形成一个(3,2)的dataframe


df.columns = ['color',  'class'] 
pd.get_dummies(df) 
Out[4]: 
   color_blue  color_green  color_red  class_A  class_B
0           0            1          0        1        0
1           0            0          1        0        1
2           1            0          0        1        0

可以看到有这么几个事

  1. 默认就是所有变量都转了
  2. 默认转了以后的变量用columns名_数值名表示
df = pd.DataFrame([
            ['green' , 'A'],
            ['red'   , 'B'],
            ['blue'  , 'A']])
pd.get_dummies(df) 
Out[6]: 
   0_blue  0_green  0_red  1_A  1_B
0       0        1      0    1    0
1       0        0      1    0    1
2       1        0      0    1    0

例如像这种没名字的就是0_xxx,1_xxx

drop_first 的含义和应用

df = pd.DataFrame([
            ['green' , 'A'],
            ['red'   , 'B'],
            ['blue'  , 'A']])
pd.get_dummies(df,drop_first= True) 
Out[8]: 
   0_green  0_red  1_B
0        1      0    0
1        0      1    1
2        0      0    0

说白了就是把第一维的给丢了,主要用处是一些离散数据会有单独的一个维度来作为垃圾桶,例如 周一周二、、、、、周日和不确定,这个不确定当然就是我们不想要的

prefix和prefix_sep

prefix : 给输出的列添加前缀,如prefix=“A”,输出的列会显示类似
prefix_sep : 设置前缀跟分类的分隔符sepration,默认是下划线"_"

df = pd.DataFrame([
            ['green' , 'A'],
            ['red'   , 'B'],
            ['blue'  , 'A']])
pd.get_dummies(df,prefix = 'SKYWF') 
Out[10]: 
   SKYWF_blue  SKYWF_green  SKYWF_red  SKYWF_A  SKYWF_B
0           0            1          0        1        0
1           0            0          1        0        1
2           1            0          0        1        0
pd.get_dummies(df,prefix_sep = '@') 
Out[11]: 
   0@blue  0@green  0@red  1@A  1@B
0       0        1      0    1    0
1       0        0      1    0    1
2       1        0      0    1    0

实践就讲完了,接下来讲实战应用

发布了59 篇原创文章 · 获赞 19 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_43914889/article/details/104474210