【发布时间】:2016-12-02 02:06:56
【问题描述】:
我有一个包含字符串值的嵌套列表,我用它来创建一个包含二进制值的列表。我在模型中使用转换后的列表作为预测变量。
带有字符串值的列表 -
D = [["An", "Cn"], ["Bs", "Gt"], ["Cd", "El"], ["Cd", "Cn", "En"]]
与
D_tran = pd.Series([';'.join(i) for i in D]).str.get_dummies(';')
我获得了D_tran
An Bs Cd Cn El En Gt
0 1 0 0 1 0 0 0
1 0 1 0 0 0 0 1
2 0 0 1 0 1 0 0
3 0 0 1 1 0 1 0
与
D_list = D_tran.values.tolist()
我获得了D_list:
[[1, 0, 0, 1, 0, 0, 0], [0, 1, 0, 0, 0, 0, 1], [0, 0, 1, 0, 1, 0, 0], [0, 0, 1, 1, 0, 1, 0]]
我用它来创建一个线性回归模型。但是,为了测试我的模型,我需要将测试数据中的字符串值转换为二进制。测试数据看起来像 -
R = [["Bs"], ["Cd", "El"], ["An"]]
我的问题是如何将R映射到D_list的框架中以获得
R = [[0, 1, 0, 0, 0, 0, 0], [0, 0, 1, 0, 1, 0, 0], [1, 0, 0, 0, 0, 0, 0]]
请注意,在测试数据中,只有部分预测变量出现。
非常感谢您的帮助。
【问题讨论】: