2015-02-11 134 views
13

假設我有一個數據幀data與我想要轉換爲指標的字符串。我使用pandas.get_dummies(data)將其轉換爲我現在可用於構建模型的數據集。簡單的方法將pandas.get_dummies轉換爲新數據?

現在我有一個新的觀察,我想通過我的模型運行。顯然,我不能使用pandas.get_dummies(new_data),因爲它不包含所有的類,也不會製作相同的指標矩陣。有沒有一個好的方法來做到這一點?

回答

16

您可以創建一個從單一的新的觀察假人,然後重新索引這個框架使用的列從原來的指標矩陣列:

import pandas as pd 
df = pd.DataFrame({'cat':['a','b','c','d'],'val':[1,2,5,10]}) 
df1 = pd.get_dummies(pd.DataFrame({'cat':['a'],'val':[1]})) 
dummies_frame = pd.get_dummies(df) 
df1.reindex(columns = dummies_frame.columns, fill_value=0) 

回報:

 val  cat_a cat_b cat_c cat_d 
    0  1  1  0  0  0 
+2

你可能想fill_value = 0。 – 2015-02-11 23:44:48

+0

謝謝@AndyHayden,更新爲使用fill_value。 – JAB 2015-02-12 00:20:26

+2

上帝,我愛堆棧溢出。 – 2016-06-16 23:31:35

相關問題