经典csv读取器在术语文档数组上不起作用的原因是csv文件的第一列是术语,而不是值。因此,该文件的语法如下:使用python从csv读取术语 - 文档矩阵
"";"label1";"label2";"label3" ...
"term1";1;0;8;...
"term2";0;0;3;...
.................................
我需要建立一个词典,其关键字是LABEL1,LABEL3等..和值的列向量(这将是:快译通[LABEL1] - > 1,0,dict [label2] - > 0,0等),这意味着这些条款对我来说完全没用。
我已经实现了它是这样一个定制的解决方案:
....
keys = f.readline().split('";"') #1st line of the csv
keys = keys[1:] #skipping ""
zeros = [0] * len(keys) #dicts initial values will be 0
d = OrderedDict(zip(keys, zeros))
lines = f.readlines()
for line in lines:
...
splittting, stripping etc I get a list with values (eg: 1,0,8 - see example above)
...
for value in values:
....
但是读8个CSV文件(共12MB)需要超过90分钟,我的笔记本电脑。
有没有人知道一个更有效的方式来处理这个问题?
为什么你需要一个'OrderedDict'在这里? – 2013-05-08 17:11:48
你有没有考虑用[pandas](http://pandas.pydata.org/)加载文件,然后遍历列和行来制作字典? – 2013-05-08 17:12:38