我正在使用 patsy 为回归准备分类数据,并希望将列名映射到DesignMatrix
. 我曾尝试使用对象的column_name_indexes
属性,DesignInfo
但列名已被修改以反映编码。
使用文档中的数据的示例:
>>> from patsy import demo_data, dmatrix
>>> data = demo_data("a", nlevels=3)
>>> data
{'a': ['a1', 'a2', 'a3', 'a1', 'a2', 'a3']}
>>> x = dmatrix("a", data)
>>> x
DesignMatrix with shape (6, 3)
Intercept a[T.a2] a[T.a3]
1 0 0
1 1 0
1 0 1
1 0 0
1 1 0
1 0 1
Terms:
'Intercept' (column 0)
'a' (columns 1:3)
>>> x.design_info.column_name_indexes
OrderedDict([('Intercept', 0), ('a[T.a2]', 1), ('a[T.a3]', 2)])
我希望能够'a2'
通过调用来访问例如的列索引:
x.design_info.column_name_indexes['a2']
但当然会返回KeyError: 'a2'
。因此,我必须自己构造修改后的键才能获得所需的列索引1
:
x.design_info.column_name_indexes['a[T.a2]']
有没有办法通过引用未修改的特征/列名来访问列索引,即'a2'
不必构造修改后的键,即'a[T.a2]'
?