首页 > 解决方案 > 在 Pandas 系列上使用计数器

问题描述

以下是 Pandas 系列(在这种情况下,用户和项目是索引)

它是从原来的 df 通过做df.groupby(["user, "item"])["list"].apply(lambda x: x.tolist()]

user        item        list
2           a           [alpha, alpha]
            b           [alpha, alpha, beta, beta, gamma]
3           c           [alpha, theta]
            d           [alpha, pi, pi]
1           e           [rho, zeta].

我的问题是:如何将其转换为另一个系列和/或数据框,以便在列表中有一个计数器?(作为附加要求,我只想要每个列表中的前 2 项)。

user        item        list
2           a           {alpha: 2}
            b           {alpha: 2, beta: 2}
3           c           {alpha: 1, theta: 1}
            d           {alpha: 1, pi: 2}
1           e           {rho: 1, zeta: 1}

我也可能想要每个项目的百分比,但基于原始列表:

user        item        list
2           a           {alpha: 100}
            b           {alpha: 40, beta: 40}
3           c           {alpha: 50, theta: 50}
            d           {alpha: 33.3, pi: 66.6}
1           e           {rho: 50, zeta: 50}

标签: pythonpandas

解决方案


推荐阅读