这可能更像是一个编码问题而不是数据科学,所以如果这不是提出这个问题的正确平台,我们深表歉意。
我的问题与sklearn
'sColumnTransformer
类有关。考虑'description'
对应于具有 9508 行的文本/字符串数据列。以下按预期工作:
In [61]: transformer = ColumnTransformer(transformers=[('text-features', CountVectorizer(), 'description')])
In [62]: X=transformer.fit_transform(df)
In [63]: X.shape
Out[63]: (9508, 5913)
但是,以下(注意[]
周围'description'
):
In [64]: transformer = ColumnTransformer(transformers=[('text-features', CountVectorizer(), ['description'])])
In [65]: X=transformer.fit_transform(df)
没有按预期工作:
In [66]: X.shape
Out[66]: (1, 3)
请注意,解析其他转换器的列名列表没有问题,例如OneHotEncoder()
. 这使得以编程方式为包含异构数据类型列的数据帧配置转换器变得困难。
一种可能性是单独为每列配置变压器,即使多列需要相同的变压器,但我想知道是否有更好的方法来处理这个问题?