首页 > 解决方案 > 如何获得总计不同的计数

问题描述

我只是想获得 distinct_count 聚合。

我有这个代码:

data_frame = data_frame.group_by(:job_id)
                       .aggregate(job_id: :max, bid_id: :count)

我想要这样的东西:

data_frame = data_frame.group_by(:job_id)
                       .aggregate(job_id: :max, bid_id: :distinct_count)

我知道还没有实现这样的统计方法,还有其他方法吗?

标签: rubydataframedaru

解决方案


我找到了一种方法来做到这一点:

data_frame = data_frame.group_by(:job_id)
                       .aggregate(job_id: :max,
                                  bid_id: lambda{ |x| x.uniq.size })

或者可能更好:

data_frame = data_frame.group_by(:job_id)
                       .aggregate(job_id: :max,
                                  bid_id: ->(x) { x.uniq.size })

我不确定这是否是正确的方法,但它似乎有效。

这个熊猫解决方案帮助了我。


推荐阅读