2015-02-11 10 views
13

Sanırım data veri çerçevem ​​var ve göstergelere dönüştürülmesini istediğim dizeler var. Bunu bir model oluşturmak için kullanabileceğim bir veri kümesine dönüştürmek için pandas.get_dummies(data) kullanıyorum."pandas.get_dummies" kaynağından yeni verilere dönüşüm uygulamanın kolay yolu?

Şimdi, modelimin üzerinden geçmek istediğim yeni bir gözlemim var. Açıkça pandas.get_dummies(new_data) kullanamıyorum çünkü tüm sınıfları içermiyor ve aynı gösterge matrisini oluşturmuyor. Bunu yapmanın iyi bir yolu var mı?

cevap

16

Eğer tek bir yeni gözlem mankenleri oluşturmak ve sonra bu orijinal gösterge matrisinden sütunlarını kullanarak sütunları çerçeveleri reindex edebilirsiniz:

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) 

döner:

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

Muhtemelen istiyorum fill_value = 0. –

+0

Teşekkürler @AndyHayden, fill_value kullanımı güncellendi. – JAB

+2

Tanrı, taşmayı seviyorum. –