【问题标题】:Pandas data frame change structurePandas 数据框变化结构
【发布时间】:2021-12-10 10:48:20
【问题描述】:

我有一个这样的电影评分数据框:

我希望有一个新的数据框来将数据作为每个用户的序列,并且序列中的每个项目都包含一个 movieid 向量及其评级,看起来像这样:

userId    moviesandratings
1        [[296,5],[306,3.5],[307,5],etc]

针对每个用户。

【问题讨论】:

    标签: python-3.x pandas dataframe


    【解决方案1】:

    您可以创建由 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'))
    

    【讨论】:

      猜你喜欢
      • 2012-09-14
      • 1970-01-01
      • 1970-01-01
      • 2018-07-06
      • 1970-01-01
      • 2019-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多