经典 csv 阅读器不适用于术语文档数组的原因是 csv 文件的第一列是术语,而不是值。因此,该文件具有以下语法:
"";"label1";"label2";"label3" ...
"term1";1;0;8;...
"term2";0;0;3;...
.................................
我需要构建一个字典,其键是 label1、label3 等...而值是列向量(这里是:dict[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 多分钟。
有谁知道更有效的方法来处理这个问题?