我希望根据两列值选择一些特定行。例如:
d = {'user' : [1., 2., 3., 4] ,'item' : [5., 6., 7., 8.],'f1' : [9., 16., 17., 18.], 'f2':[4,5,6,5], 'f3':[4,5,5,8]}
df = pd.DataFrame(d)
print df
Out:
f1 f2 f3 item user
0 9 4 4 5 1
1 16 5 5 6 2
2 17 6 5 7 3
3 18 5 8 8 4
我想根据“用户”和“项目”的值选择行。给定一个存储 [user, item] 值对的 2d numpy 数组:
samples = np.array([[1,5],[3,7],[3,7],[2,6]])
Out:
array([[1, 5],
[3, 7],
[3, 7],
[2, 6]])
那么预期的输出是:
Out:
f1 f2 f3 item user
0 9 4 4 5 1
2 17 6 5 7 3
2 17 6 5 7 3
1 16 5 5 6 2
然后,我的最终目标是获得一个二维 numpy 数组来存储除 item 和 user 之外的所有列值,即:
Out:
array([[9, 4, 4],
[17, 6, 5],
[17, 6, 5],
[16, 5, 5]])
我们可以看到,它是 f1、f2、f3 列的值。
我怎样才能做到这一点?