1

次の形式のデータがあります。

user,item,rating
1,1,3
1,2,2
2,1,2
2,4,1

など これを行列形式に変換したい

というわけでアウトプットはこんな感じ

Item--> 1,2,3,4....
user
1       3,2,0,0....
2       2,0,0,1

....等々..

Pythonでこれを行うにはどうすればよいですか?

ありがとう

4

2 に答える 2

1

@falsetru とは異なるアプローチ、

ファイルへの書き込みでファイルから読み取りますか?

辞書で動作する可能性があります

from collections import defaultdict
valdict=defaultdict(int)
nuser=0
nitem=0
for line in infile:
    eachline=line.strip().split(",")
    valdict[tuple(eachline[0:2])]=eachline[2]
    nuser=max(nuser,eachline[0])
    nitem=max(nitem,eachline[1])

towrite=",".join(range(1,nuser+1))+"\n"
for i in range(1:nuser+1):
    towrite+=str(i)
    for j in range(1:nitem+1):
        towrite+=","+str(valdict[i,j])
    towrite+="\n"

outfile.write(towrite)
于 2013-10-03T06:20:06.477 に答える