【发布时间】:2021-12-10 10:48:20
【问题描述】:
我希望有一个新的数据框来将数据作为每个用户的序列,并且序列中的每个项目都包含一个 movieid 向量及其评级,看起来像这样:
userId moviesandratings
1 [[296,5],[306,3.5],[307,5],etc]
针对每个用户。
【问题讨论】:
标签: python-3.x pandas dataframe
我希望有一个新的数据框来将数据作为每个用户的序列,并且序列中的每个项目都包含一个 movieid 向量及其评级,看起来像这样:
userId moviesandratings
1 [[296,5],[306,3.5],[307,5],etc]
针对每个用户。
【问题讨论】:
标签: python-3.x pandas dataframe
您可以创建由 lsits 填充的新列,然后在 GroupBy.agg 中聚合列表:
df['new'] = df[['movieId','rating']].to_numpy().tolist()
df1 = df.groupby('userId')['new'].agg(list).reset_index(name='moviesandratings')
或者使用GroupBy.apply:
df1 = (df.groupby('userId')[['movieId','rating']]
.apply(lambda x: x.to_numpy().tolist())
.reset_index(name='moviesandratings'))
【讨论】: