我想根据两个列的值选择一些特定的行。例如:
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'的值来选择行。给定一个存储[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
最终目标是获取一个2D的numpy数组,存储除了item和user以外的所有列的值,即:
Out:
array([[9, 4, 4],
[17, 6, 5],
[17, 6, 5],
[16, 5, 5]])
我们可以看到,这是f1、f2和f3列的值。
我该如何做到这一点?