J'utilise patsy pour préparer des données catégoriques pour la régression et je veux mapper d'un nom de colonne à son index dans le DesignMatrix
. J'ai essayé d'utiliser l'attribut column_name_indexes
de l'objet DesignInfo
mais les noms de colonne ont été modifiés pour refléter l'encodage.Index de nom de colonne non modifié dans patsy
exemple à l'aide des données de l'docs:
>>> 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)])
je voudrais être en mesure d'accéder à l'index de la colonne de, par exemple 'a2'
en appelant:
x.design_info.column_name_indexes['a2']
Mais bien sûr, qui retourne KeyError: 'a2'
. Ainsi, au lieu que je dois construire moi-même clé modifiée afin d'obtenir l'indice de la colonne désirée 1
:
x.design_info.column_name_indexes['a[T.a2]']
est-il un moyen d'accéder à l'index de colonne en se référant au nom de la fonction/colonne non modifiée, à savoir 'a2'
plutôt que avoir à construire la clé modifiée, c'est-à-dire 'a[T.a2]'
?