【问题标题】:Create a count matrix of actor names from movies从电影中创建演员姓名的计数矩阵
【发布时间】:2020-10-29 22:27:53
【问题描述】:

我有一个包含 2 列的数据框,即整数格式的 UserId 和字符串格式的 Actors,如下所示:

Userid               Actors

u1     Tony Ward,Bruce LaBruce,Kevin P. Scott,Ivar Johnson, Naomi Watts, Tony Ward,.......
u2     Tony Ward,Bruce LaBruce,Kevin P. Scott, Luke Wilson, Owen Wilson, Lumi Cavazos,......

它代表平台特定用户观看的所有电影中的演员

我想要一个输出,其中我们有每个用户的每个参与者的计数,如下所示:

UserId  Tony Ward Bruce LaBruce Kevin P. Scott Ivar Johnson  Luke Wilson Owen Wilson Lumi Cavazos
u1          2           1              1              1            0          0            0
u2          1           1              1              0            1          1            1

我认为它类似于 countvectoriser,但我这里只有名词。

请帮忙

【问题讨论】:

    标签: python matrix count nlp countvectorizer


    【解决方案1】:

    假设它是一个pandas.Dataframe 试试这个,DataFrame.explode 将类似列表(split 的结果)的每个元素转换为一行 DataFrame.groupby 聚合数据并DataFrame.unstack 转换为所需的格式。

    df['Actors'] = df['Actors'].str.replace(",\s", ",").str.split(",")
    
    (
        df.explode('Actors').
            groupby(['Userid', 'Actors'], as_index=False).size().
            unstack().fillna(0)
    )
    

    【讨论】:

      猜你喜欢
      • 2013-02-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-27
      • 2018-02-21
      相关资源
      最近更新 更多