为什么我不能在熊猫聚合中使用Counter?

时间:2018-08-01 21:33:50

标签: python pandas aggregate

我正在尝试在熊猫中进行汇总,以给出每个值出现的次数。例如,说我有这个数据框:

   a  b
0  1  1
1  1  1
2  1  2
3  2  1
4  2  2
5  2  2

我想要的输出是(类似):

a b
1 Counter({1: 2, 2: 1})
2 Counter({1: 1, 2: 2})

(我想要一个计数器的原因是,在以后的操作中,我想将它们加起来)。

我试图这样做:

df2 = df.groupby('a').agg({'b': lambda x: Counter(x)})

但是,结果没有按预期返回。我得到的是:

a  b                                                  
1  <built-in method values of Counter object at 0x0000026A7722D780>
2  <built-in method values of Counter object at 0x0000026A7722D990>

我也尝试将Counter(list(x))Counter(x.value_counts())用于我的lambda函数,但结果相似。

有什么方法可以在我的柜台买东西吗?

1 个答案:

答案 0 :(得分:0)

只是为了结束循环,我将熊猫从0.20.3升级到了0.23.3,以上代码起作用了。