以逗号分隔的列值的最频繁计数

2024-05-12 21:28:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图找到排名靠前的最不受关注的性别和年龄与收视率用逗号分隔在那个特定的列,我需要得到一个最高的性别和年龄相结合的收视率。你知道吗

数据:

gender  age rating 
M   young   pg13, r, nr
M   adult   r,pg13, pg
F   young   nr,r,pg13
M   adult   r,nr,pg13,ur
M   young   nr,r,pg13
F   adult   pg13,nr,r,ur
F   young   ur, nr, r, 
F   young   pg13

代码:

gen = df.set_index(['gender', 'age']['rating'].str.split(',', expand=True).stack()
g= gen.groupby(level=0).apply(lambda x: x.value_counts().index[0])

输出:

print(g)

gender  age
M     young         pg13
F     adult          nr
M     adult           r

print(gen)

gender  age
M       young   0          pg13
                1           nr
                2           r
                3          nr
 F  adult       0           r
                1           nr
                2             pg13

由于stack()函数在拆分评级值后按评级联接列,因此此处的评级不符合顺序。因此我的输出不匹配。你知道吗

预期产量:

M young  pg13
F adult  r 

Tags: ageindexstackgendernrgenprintrating