gpt4 book ai didi

python - 打印目标列的前 2 个频繁出现的值

转载 作者:太空宇宙 更新时间:2023-11-04 04:49:23 26 4
gpt4 key购买 nike

我有如下所示的三列,并试图返回第三列的 top1 和 top2 最高计数。我希望生成此输出,如 expected output 所示。数据:

打印(df)

   AGE GENDER rating
0 10 M PG
1 10 M R
2 10 M R
3 4 F PG13
4 4 F PG13

代码:

 s = (df.groupby(['AGE', 'GENDER'])['rating']
.apply(lambda x: x.value_counts().head(2))
.rename_axis(('a','b', 'c'))
.reset_index(level=2)['c'])

输出:

print (s)

a b
4 F PG13
10 M R
M PG
Name: c, dtype: object

预期输出:

print (s[F])
('PG13')

print(s[M])

('PG13', 'R')

最佳答案

我认为你需要:

s = (df.groupby(['AGE', 'GENDER'])['rating']
.apply(lambda x: x.value_counts().head(2))
.rename_axis(('a','b', 'c'))
.reset_index()
.groupby('b')['c']
.apply(list)
.to_dict()
)
print (s)
{'M': ['R', 'PG'], 'F': ['PG13']}

关于python - 打印目标列的前 2 个频繁出现的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48768632/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com