经典的csv阅读器不能处理术语文档数组的原因是csv文件的第一列是术语,而不是值。因此,该文件具有以下语法:
"";"label1";"label2";"label3" ...
"term1";1;0;8;...
"term2";0;0;3;...
.................................
我需要建立一个字典,它的键是label1,label3,等等。。。值是列向量(这里是:dict[label1]->;1,0,dict[label2]->;0,0等等),这意味着这些术语对我来说完全没有用。在
我实施了一个定制的解决方案,如下所示:
^{pr2}$不过,用我的笔记本电脑读取8个csv文件(总计:12MB)需要90多分钟。在
有没有人知道更有效的方法来处理这个问题?在
您可以使用
csv
模块将CSV文件读入内存,然后使用zip(*rows)
或itertools.izip(*rows)
来转置行:这将创建一个以头为键、列为值的
data
字典。如果需要,可以从字典中删除''
“terms”列。在对于您的输入示例,
^{pr2}$data
字典在执行上述代码后如下所示:熊猫显然是最好的选择!你所要做的就是将数据帧加载到字典中,它就生成了一个字典。以下是所有代码,它既快速又高效:
快,简单!在
相关问题 更多 >
编程相关推荐