【问题标题】:python: grouping based on frequency of occurrencepython:根据出现频率分组
【发布时间】:2020-02-29 23:39:52
【问题描述】:

我有一个数据集的标签及其频率(即重复的次数)。

是否有一个库可用于将频率几乎相似的标签组合在一起(即基于变化)。

例如: 假设a重复10次,b重复9次,c重复6次,d重复5次,e重复2次 所以我想和 b 属于一组,c 和 d 属于一组,e 属于另一组。

【问题讨论】:

  • 请提供您需要分组所依据的确切规则

标签: python statistics


【解决方案1】:

您可以使用以下函数根据计数进行分组。

def group_labels(cnts): 
  d = {} 
  for k, v in cnts.items(): 
    d.setdefault(v, []).append(k)
  return sorted(d.values(), key=lambda x: x[0]) # sorted by first label

例子

cnts = {'a': 4, 'b': 15, 'c':4, 'd':16, 'e':1, 'f':16}
print(group_labels(cnts))
[['a', 'c'], ['b'], ['d', 'f'], ['e']]

【讨论】:

  • 感谢您的意见。我真正需要的是对那些落在某个范围内的元素进行分组,或者它们之间的差异在给定的限制内。
  • @Mandroid--您的目标是根据值 similar to this problem 对标签进行聚类吗?
  • 没错。非常感谢。
猜你喜欢
  • 2011-09-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-25
  • 2019-11-23
  • 1970-01-01
  • 2017-08-14
  • 1970-01-01
相关资源
最近更新 更多