Python 跨属性拆分数据帧
我有一个dataframe,它有许多用户,许多项和用户项对都有评级,尽管不是所有用户都对所有项进行评级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个项目返回给用户。拆分数据帧的最简单方法是什么,这样我
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
因此,为了澄清这一点,您希望选择数据集中包含/从最高评级元素中获得的部分?欢迎使用,请毫不犹豫地从您的数据样本中提供明确的所需输出。