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

實踐就講完了,接下來講實戰應用

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章