熊猫按列中的每个值分组

滚子

我的数据集如下所示:

在此处输入图片说明

df = pd.DataFrame({"title":["movie1","movie2","movie3","movie4","movie5","movie6","movie7"],"genres":["Childrens Comedy","Comedy Drama","Western","Comedy Action","Action Childrens","Drama","Drama"],\
    "rating":[3,4,1,2,5,4,2],"user_id":[1,1,4,2,2,3,5], "gender":["F","F","F","M","M","M","M"]})

我想分别获得每种电影类型对每种性别的收视率计数。

预期产量:

[1]:https://i.stack.imgur.com/k6PTV.png

在预期的输出中,我们按性别分组,并希望计算每种性别在特定电影类型中给出多少分(即使电影具有更多电影类型)。

到目前为止的代码,但未提供正确的输出:

df.groupby(['genre','gender']).agg({"rating":"count"})

由于仅将完全相同的流派分组,因此无法提供正确的输出。在这种情况下,只有movie6和movie7会大喊正确的结果。

如何按类型列中的每个值分组?我不想像我已经尝试过的那样对它们进行热编码,但是电影流派在真实数据集中是如此之多,以至于根本无法正常工作。

先感谢您!

耶斯列尔

首先使用Series.str.split将其重新设置为和相同的列DataFrame.explode,然后通过诱骗计数GroupBy.size并添加0缺失的组合Series.unstackDataFrame.stack

df1 = (df.assign(genres = df['genres'].str.split())
         .explode('genres')
         .groupby(['genres','gender'])["rating"]
         .size()
         .unstack(fill_value=0)
         .stack()
         .sort_index(level=[1,0], ascending=[False, True])
         .reset_index(name='count')
         )
print (df1)
      genres gender  count
0     Action      M      2
1  Childrens      M      1
2     Comedy      M      1
3      Drama      M      2
4    Western      M      0
5     Action      F      0
6  Childrens      F      1
7     Comedy      F      2
8      Drama      F      1
9    Western      F      1

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

熊猫按条件按列值分组

如何对按熊猫中的分类列分组的值求和?

熊猫按日期分组,将值分配给列

熊猫的pivot_table分组列按值

按两列分组,熊猫python中第三列的最大值

如何按列值对熊猫数据框的行进行分组?

熊猫 按索引分组并为列应用最大值

熊猫:按两列分组,对第一列分组中的第一个值求和

如何在熊猫中不按分组保留分组列

如何用熊猫中的交换值按两列分组?

熊猫:每个日期的频率,按列表的形式按列分组

熊猫如何按列中的特定值分组?

熊猫分组按顺序值

熊猫:按熊猫0.23.4中的两列组合分组

如何在熊猫python中按每个值的百分比范围分组

如何按列分组并删除或分隔熊猫中的值?

在熊猫中按两列分组

按多列分组,并对熊猫中其他列的值进行透视和计数

如何为熊猫数据框中按ID分组的每个列的每个唯一值查找最小值

按2列分组并打印熊猫中每个组合的数据

在熊猫中,当按另一列分组时,如何查找自按值改变的列以来的时间?

熊猫:按值将单元格值分组到单独的列中

熊猫按单个列中的多个值分组

将 DataFrame 中的每个值附加到 np 向量,按列分组

熊猫按列表中的值分组(串联)

如何在熊猫中按公共值分组并根据它分成列?

按列分组并从熊猫数据框中的其他列中选择特定值

按两列分组,求和、计数并在单独的列中显示输出值(熊猫)

如何创建一个新列,按每个 n 数字对另一列值进行分组?熊猫