首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何根据较低的频率进行去重

问如何根据较低的频率进行去重
EN

Stack Overflow用户
提问于 2020-10-15 02:33:14
回答 2查看 58关注 0票数 0

我有一张像这样的桌子

​

我希望能够保持最高频率的品牌ids。例如,在奥迪的情况下,两个in具有相同的频率,因此只保留一个。在梅赛德斯-奔驰的情况下,保留后一个,因为它的频率是7。

这是我的数据框架:

代码语言:javascript
复制
{'Brand': 
 {0: 'audi',
  1: 'audi',
  2: 'bmw',
  3: 'dacia',
  4: 'fiat',
  5: 'ford',
  6: 'ford',
  7: 'honda',
  8: 'honda',
  9: 'hyundai',
  10: 'kia',
  11: 'mercedes-benz',
  12: 'mercedes-benz',
  13: 'nissan',
  14: 'nissan',
  15: 'opel',
  16: 'renault',
  17: 'renault',
  18: 'renault',
  19: 'renault',
  20: 'toyota',
  21: 'toyota',
  22: 'volvo',
  23: 'vw',
  24: 'vw',
  25: 'vw',
  26: 'vw'},
 'id': 
 {0: 'audi_a4_dynamic_2016_otomatik',
  1: 'audi_a6_standart_2015_otomatik',
  2: 'bmw_5 series_executive_2016_otomatik',
  3: 'dacia_duster_laureate_2017_manuel',
  4: 'fiat_egea_easy_2017_manuel',
  5: 'ford_focus_trend x_2015_manuel',
  6: 'ford_focus_trend x_2015_otomatik',
  7: 'honda_civic_eco elegance_2017_otomatik',
  8: 'honda_cr-v_executive_2018_otomatik',
  9: 'hyundai_tucson_elite plus_2017_otomatik',
  10: 'kia_sportage_concept plus_2015_otomatik',
  11: 'mercedes-benz_c-class_amg_2016_otomatik',
  12: 'mercedes-benz_e-class_edition e_2015_otomatik',
  13: 'nissan_qashqai_black edition_2014_manuel',
  14: 'nissan_qashqai_sky pack_2015_otomatik',
  15: 'opel_astra_edition_2016_manuel',
  16: 'renault_clio_joy_2016_manuel',
  17: 'renault_kadjar_icon_2015_otomatik',
  18: 'renault_kadjar_icon_2016_otomatik',
  19: 'renault_mégane_touch_2017_otomatik',
  20: 'toyota_corolla_touch_2015_otomatik',
  21: 'toyota_corolla_touch_2016_otomatik',
  22: 'volvo_s60_advance_2018_otomatik',
  23: 'vw_jetta_comfortline_2013_otomatik',
  24: 'vw_passat_highline_2017_otomatik',
  25: 'vw_tiguan_sport&style_2012_manuel',
  26: 'vw_tiguan_sport&style_2013_manuel'},
 'freq': {0: 4,
  1: 4,
  2: 7,
  3: 4,
  4: 4,
  5: 4,
  6: 4,
  7: 4,
  8: 4,
  9: 4,
  10: 4,
  11: 4,
  12: 7,
  13: 4,
  14: 4,
  15: 4,
  16: 4,
  17: 4,
  18: 4,
  19: 4,
  20: 4,
  21: 4,
  22: 4,
  23: 4,
  24: 7,
  25: 4,
  26: 4}}

编辑:尝试了其中一个答案,获得了额外的标题级别

​

EN

回答 2

Stack Overflow用户

发布于 2020-10-15 02:53:05

您需要对Brand进行pandas.groupby,然后根据最大频率进行聚合。

像这样的东西应该是有效的:

代码语言:javascript
复制
df.groupby('Brand')[['id', 'freq']].agg({'freq': 'max'})
票数 0
EN

Stack Overflow用户

发布于 2020-10-15 03:04:26

要获得结果,请运行以下命令:

代码语言:javascript
复制
result = df.groupby('Brand', as_index=False).apply(
    lambda grp: grp[grp.freq == grp.freq.max()].iloc[0])
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64359499

复制
相关文章

相似问题

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