我正试图找到按性别和年龄观看的评分最高的评分,在该特定专栏中以逗号分隔,我需要获得性别和年龄相结合的最高评分。
数据:
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