首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按groupBy后另一列的最大值查询一列

按groupBy后另一列的最大值查询一列
EN

Stack Overflow用户
提问于 2021-10-26 16:19:23
回答 1查看 33关注 0票数 0
代码语言:javascript
复制
+-------+--------------------+-------+
|  brand|       category_code|  count|
+-------+--------------------+-------+
|samsung|electronics.smart...|1782386|
|  apple|electronics.smart...|1649525|
| xiaomi|electronics.smart...| 924383|
| huawei|electronics.smart...| 477946|
|   oppo|electronics.smart...| 242022|
|samsung|electronics.video.tv| 183988|
|  apple|electronics.audio...| 165277|
|   acer|  computers.notebook| 154599|
|  casio|  electronics.clocks| 141403|

在对count列执行groupBy之后,我想从category_code列中选择一个与category_code列的最大值相对应的值。因此,在category_code列中electronics.smartphone组的第一行中,我想要brand列中的字符串samsung,因为它在count列中具有最高的值...

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-10-27 01:06:21

首先使用groupBy来标识每个category_code的最大计数行,然后与原始数据帧连接,以检索与最大计数对应的品牌值:

代码语言:javascript
复制
df1 =  df.groupBy("category_code").agg(F.max("count").alias("count"))
                    
df2 = df.join(df1, ["count", "category_code"]).drop("count")

这将按如下方式生成df2

代码语言:javascript
复制
category_code          brand
---------------------------
electronics.smart...   samsung
electronics.video.tv   samsung
electronics.audio      apple
computers.notebook     acer
electronics.clocks     casio
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69726661

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档