开发者社区 > 大数据与机器学习 > 大数据计算 MaxCompute > 正文

我想一次性求出结果,不想多一个中间变量,但是我应该怎么指定新聚合出来的字段呢?

different_df =aa.groupby(
aa.status,
aa.paid,
aa.order_sn
).agg(
cn=aa["order_sn"].count()
,nc=aa["order_sn"].unique().count())

different_df.filter(
different_df.cn!=different_df.nc
).head(5)

展开
收起
离原 2023-03-11 09:04:42 712 0
3 条回答
写回答
取消 提交回答
  • 公众号:网络技术联盟站,InfoQ签约作者,阿里云社区签约作者,华为云 云享专家,BOSS直聘 创作王者,腾讯课堂创作领航员,博客+论坛:https://www.wljslmz.cn,工程师导航:https://www.wljslmz.com

    你好,需要先分组,再聚合的。

    2023-03-11 18:57:32
    赞同 展开评论 打赏
  • 发表文章、提出问题、分享经验、结交志同道合的朋友

    可以使用 assign() 函数来指定新的聚合字段,例如:

    different_df = aa.groupby(
        aa.status,
        aa.paid,
        aa.order_sn
    ).agg(
        cn=("order_sn", "count"),
        nc=("order_sn", lambda x: x.nunique())
    ).assign(
        diff=lambda x: x["cn"] - x["nc"]
    ).query("diff != 0")
    
    
    2023-03-11 17:05:20
    赞同 展开评论 打赏
  • GitHub https://github.com/co63oc/cloud

    groupby().agg().filter()

    2023-03-11 09:44:25
    赞同 展开评论 打赏

MaxCompute(原ODPS)是一项面向分析的大数据计算服务,它以Serverless架构提供快速、全托管的在线数据仓库服务,消除传统数据平台在资源扩展性和弹性方面的限制,最小化用户运维投入,使您经济并高效的分析处理海量数据。

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载