ruby - 如何获得总计不同的计数
问题描述
我只是想获得 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)
我知道还没有实现这样的统计方法,还有其他方法吗?
解决方案
我找到了一种方法来做到这一点:
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 })
我不确定这是否是正确的方法,但它似乎有效。
这个熊猫解决方案帮助了我。
推荐阅读
- javascript - 最小化窗口/浏览器选项卡时 setInterval 函数无法正常工作
- vector - 使用 mmapLayerComboBox 中的选定图层
- swift - 工作表和警报不断刷新我的 WKWebView SwiftUI 页面
- python - 每个进程的速度随着更多进程而变慢
- python - 如何在 keras 中使用 elmoformanylangs?
- tomcat - 如果我调用 connector.start(),Tomcat 9 会抱怨启动两次?
- javascript - CryptoJS 解密值与原始值不同
- prolog - 尝试获取组合时参数没有充分实例化
- javascript - 我如何获得一个 wordpress 插件以使来自前端的访问者能够按升序或降序对帖子进行排序
- python - 当本地模块中的代码发生更改时,我是否总是必须在 Jupyter Lab 中重新启动内核?