Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 跨属性拆分数据帧_Python_Pandas_Dataframe_Recommender Systems - Fatal编程技术网

Python 跨属性拆分数据帧

Python 跨属性拆分数据帧,python,pandas,dataframe,recommender-systems,Python,Pandas,Dataframe,Recommender Systems,我有一个dataframe,它有许多用户,许多项和用户项对都有评级,尽管不是所有用户都对所有项进行评级 userId itemId rating 1 1 4 1 5 3 1 2 5 2 5 2 2 4 4 我试图测试一个推荐模型的性能,该模型根据用户对其他项目的评分将前k个项目返回给用户。拆分数据帧的最简单方法是什么,这样我

我有一个dataframe,它有许多用户,许多项和用户项对都有评级,尽管不是所有用户都对所有项进行评级

userId    itemId    rating
1         1         4
1         5         3
1         2         5
2         5         2
2         4         4

我试图测试一个推荐模型的性能,该模型根据用户对其他项目的评分将前k个项目返回给用户。拆分数据帧的最简单方法是什么,这样我就可以为某些用户子集创建最高评分项目的测试集?

这将为您提供每个用户ID的两个最高评分项目。您可以在
head()
中更改数字,也可以查看其他选项

data='''userId    itemId    rating
1         1         4
1         5         3
1         2         5
2         5         2
2         4         4'''
df = pd.read_csv(io.StringIO(data), sep=' \s+', engine='python')
df.sort_values('rating', ascending=False).groupby('userId').head(2)
输出

   userId  itemId  rating
2       1       2       5
0       1       1       4
4       2       4       4
3       2       5       2

因此,为了澄清这一点,您希望选择数据集中包含/从最高评级元素中获得的部分?欢迎使用,请毫不犹豫地从您的数据样本中提供明确的所需输出。