従来の 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 分以上かかります。
これに対処するより効率的な方法を知っている人はいますか?