4
私はネット上で長い時間探していますが、役に立たないです。Python3でdataframeをdictに変換する方法
userId movieId rating timestamp
1 31 2.5 1260759144
1 1029 3.0 1260759179
1 1061 3.0 1260759182
1 1129 2.0 1260759185
1 1172 4.0 1260759205
2 31 3.0 1260759134
2 1111 4.5 1260759256
私が変換したい:私はこのようなテーブルを取得、私はMovieLensに
ratings = pd.read_table('ml-latest-small/ratings.csv')
をcsvファイルを読むためにパンダを使用して、この
を達成するためにどのように役立つか、いくつかのアイデアを与えることをしてみてくださいそれは
{userId:{movieId:rating}}
例えば
01のようなのdictします{
1:{31:2.5,1029:3.0,1061,3.0,1129:2.0,1172:4.0},
2:{31:3.0,1111:4.5}
}
私はこのコードを試みたが、失敗しました:
for user in ratings['userId']:
for movieid in ratings['movieId']:
di_rating.setdefault(user,{})
di_rating[user][movieid]=ratings['rating'][ratings['userId'] == user][ratings['movieId'] == movieid]
誰かが私を助けてくださいことはできますか?
おかげでたくさん!しかし、 'movieId'は浮動小数点型に変換されているようです – Alfred
あなたは 'int' - ' d = df.groupby( 'userId')にキャストすることができます。apply(lambda y:{int(x.movieId):x.rating for i 、x in y.iterrows()})。to_dict() ' – jezrael