2017-12-17 10 views
-2

私はnumpyユーザ項目行列を持っています。各行はユーザに対応し、各列は項目に対応しています。 私は次のようにのようなパンダのデータフレームに行列を変換したい:Numpy行列からPandas DataFrameへ

user item rating 
0  1 1907  4.0 
1  1 1028  5.0 
2  1 608  4.0 
3  1 2692  4.0 
4  1 1193  5.0 

私はデータフレームを生成するために、次のコードを使用します。

predictions = pd.DataFrame(data=pred) 
predictions = predictions.stack().reset_index(name='rating') 
predictions.columns = ['user', 'item', 'rating'] 

と私はこのようなDFを得る:

 user item rating 
0   0  0 5.000000 
1   0  1 0.000000 
2   0  2 0.000000 
3   0  3 0.000000 

userとitemsの各値をlistに格納された値にマップする方法はありますか?ユーザリストで第一の値でマッピングされるべき値0を持つユーザー、ユーザーリストで6番目の要素を持つ値5を持つユーザーのように... 私が使用してしようとしている:

predictions[["user"]].apply(lambda value: users[value]) 

を私が得ました私のユーザーリストのサイズであるためはIndexError、私は理解していない96私のせいではこのコードにあった

IndexError: ('index 96 is out of bounds for axis 1 with size 96', 'occurred at index user') 
+0

? – akilat90

+0

@ akilat90 predは私のnumpyマトリックスです – Progeny

+0

もちろん!どのように見えますか? – akilat90

答えて

0

while not session.should_stop(): 
    predictions = session.run(decoder_op) 
    pred = np.vstack((pred, predictions)) 

だけで置き換える:

np.vstack((pred, predictions)) 

、それがで魔法のように動作します: `pred`がどのように見えるん何

predictions['user'] = predictions['user'].map(lambda value: users[value]) 
predictions['item'] = predictions['item'].map(lambda value: items[value]) 
関連する問題