无法从sklearn中的csv文件fit_transform数据

时间:2016-12-09 17:27:28

标签: pandas machine-learning scikit-learn classification sklearn-pandas

我正在尝试学习Scikit-learn中的一些分类。但是,我无法弄清楚这个错误意味着什么。

import pandas as pd
from sklearn.feature_extraction.text import CountVectorizer

data_frame = pd.read_csv('data.csv', header=0) 
data_in_numpy = data_frame.values 

c = CountVectorizer()
c.fit_transform(data_in_numpy.data)

这会引发错误:

NotImplementedError: multi-dimensional sub-views are not implemented

我该如何解决这个问题?我的csv文件中的一条记录如下:

Time   Directors    Actors   Rating   Label
123    Abc, Def     A, B,c    7.2      1

我认为这个错误是由于在Director或Actors列下有多个值。 任何帮助,将不胜感激。 谢谢,

1 个答案:

答案 0 :(得分:0)

根据the docstring,sklearn.feature_extraction.text.CountVectorizer将:

  

将文本文档集合转换为令牌计数矩阵

那么,我想,为什么你要输入数值?

尝试仅转换字符串(导演和演员):

data_in_numpy['X'] = data_frame[['Directors', 'Actors']].apply(lambda x: ' '.join(x), axis=1)
data_in_numpy = data_frame['X'].values

首先,您可能希望通过删除逗号来清理数据。

data_frame['Directors'] = data_frame['Directors'].str.replace(',', ' ')
data_frame['Actors'] = data_frame['Actors'].str.replace(',', ' ')