2015-02-11 12 views
13

Giả sử tôi có khung dữ liệu data với các chuỗi mà tôi muốn chuyển đổi thành chỉ báo. Tôi sử dụng pandas.get_dummies(data) để chuyển đổi số liệu này thành tập dữ liệu mà giờ đây tôi có thể sử dụng để tạo mô hình.Cách dễ dàng để áp dụng chuyển đổi từ `pandas.get_dummies` thành dữ liệu mới?

Bây giờ tôi có một quan sát mới duy nhất mà tôi muốn chạy qua mô hình của mình. Rõ ràng là tôi không thể sử dụng pandas.get_dummies(new_data) vì nó không chứa tất cả các lớp và sẽ không tạo ra các ma trận chỉ báo giống nhau. Có cách nào tốt để làm điều này?

Trả lời

16

bạn có thể tạo các núm vú cao su từ các quan sát mới duy nhất, và sau đó reindex này khung cột bằng cách sử dụng các cột từ ma trận chỉ số ban đầu:

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) 

lợi nhuận:

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

Bạn có thể muốn fill_value = 0. –

+0

Cảm ơn @AndyHayden, đã cập nhật để sử dụng fill_value. – JAB

+2

Chúa ơi, tôi yêu tràn ngăn xếp. –

Các vấn đề liên quan