当值以逗号分隔时,最常见的列值计数

时间:2018-02-12 13:51:15

标签: python pandas pandas-groupby

我正试图找到按性别和年龄观看的评分最高的评分,在该特定专栏中以逗号分隔,我需要获得性别和年龄相结合的最高评分。

数据:

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 

0 个答案:

没有答案