次の形式のデータがあります。
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でこれを行うにはどうすればよいですか?
ありがとう
次の形式のデータがあります。
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でこれを行うにはどうすればよいですか?
ありがとう
@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)