如何按Bundle ID去重并保留对应安装量最高的App名称?
数据表聚合:保留每个Bundle ID安装量最高的App信息
针对你需要去除重复Bundle ID、仅保留每个Bundle ID下安装量(count)最高的App名称的需求,以下提供两种常用实现方案:
SQL实现(适用于数据库场景)
假设数据表名为app_installs,包含字段bundle_id、app_name、count,使用窗口函数可解决分组时App名称无法显示的问题:
SELECT bundle_id, app_name, count FROM ( SELECT bundle_id, app_name, count, -- 按Bundle ID分组,每组内按安装量降序编号 ROW_NUMBER() OVER (PARTITION BY bundle_id ORDER BY count DESC) AS row_rank FROM app_installs ) ranked_data -- 筛选出每组排名第一的记录(即安装量最高的App) WHERE row_rank = 1;
Python Pandas实现(适用于本地数据处理)
如果用Pandas处理本地数据文件,可通过分组取最大值索引的方式实现:
import pandas as pd # 读取数据(替换为你的数据路径) df = pd.read_csv('app_install_data.csv') # 按Bundle ID分组,提取每组中count最大的行 result_df = df.loc[df.groupby('bundle_id')['count'].idxmax()] # 调整列顺序并重置索引,匹配期望格式 result_df = result_df[['bundle_id', 'app_name', 'count']].reset_index(drop=True) # 输出结果 print(result_df)
执行后将得到符合要求的结果格式:
| Bundle ID | app name | count |
|---|---|---|
| .apps.Photos | photos | 3,530 |
内容的提问来源于stack exchange,提问作者Eric Franca
相关产品推荐
相关产品推荐

