【问题标题】:Pandas group by one hot encoded columnsPandas 按一个热编码列分组
【发布时间】:2021-01-06 04:31:31
【问题描述】:

我的 Pandas 数据框采用以下方式(基本上是一个热编码列):

 MovieID Action  Adventure  Animation  Childrens  Comedy  Crime  Documentary  rating
  1        0          0          1          1       1      0            0     4   
  2        1          0          0          0       1      0            0     5   
  3        0          0          0          0       0      1            0     2   
  4        0          0          0          0       0      0            0     4   
  5        0          0          0          1       1      0            0     7  

我想按不同的电影类型(动作、冒险、动画等)分组,并计算每种类型的评分有多少次。

预期输出:

Genre       Number of times rated
Action             1
Adventure          0
Animation          1
Childrens          2
Comedy             3
......

类型动作被评为 1 次,冒险被评为 0 次等。

到目前为止的代码:

number_of_ratings = data.groupby(['Action']).agg({"rating": "count"})

有没有办法一次选择所有类型列,因为键入所有类型似乎并不理想(它们要多得多)?

它是否处理了某些电影属于更多类型的事实?

提前谢谢你!

【问题讨论】:

    标签: pandas group-by one-hot-encoding


    【解决方案1】:

    听起来我们可以试试

    output = df.drop(['MovieID', 'rating'], axis=1).sum()
    Action         1
    Adventure      0
    Animation      1
    Childrens      2
    Comedy         3
    Crime          1
    Documentary    0
    dtype: int64
    

    【讨论】:

      猜你喜欢
      • 2019-11-06
      • 2018-06-21
      • 2023-03-18
      • 2023-03-13
      • 2021-05-13
      • 1970-01-01
      • 2021-02-11
      • 2019-08-09
      • 1970-01-01
      相关资源
      最近更新 更多