按范围对嵌套字典中的值进行分组



我有一个嵌套字典。这本字典保存了文本id和这些文本中单词的重复。我想以一定的间隔对这些重复数进行分组,并将组中的元素数量保存在字典或数据框中。我在下面列出了一个例子。我尝试了很多方法,但都不能达到我想要的效果。提前感谢您的帮助。

初始词典:

{938742158: {'car': 3, 'yes': 5, 'none': 6, 'bi': 5, 'new': 4, 'service': 2, 'color': 8, 'have': 6, 'back': 5}, 
938735955: {'car': 5, 'my': 11, 'note': 5, 'dir': 3, 'led': 6, 'r': 3, 'line': 10}}
目标输出:

{938742158: {'1-3': 2, '3-5': 4, '5-7': 2, '7-10': 1, '10+': 0}, 
938735955: {'1-3': 2, '3-5': 2, '5-7': 1, '7-10': 1, '10+': 1}}

试试下面的

data = {938742158: {'car': 3, 'yes': 5, 'none': 6, 'bi': 5, 'new': 4, 'service': 2, 'color': 8, 'have': 6, 'back': 5},
938735955: {'car': 5, 'my': 11, 'note': 5, 'dir': 3, 'led': 6, 'r': 3, 'line': 10}}
post_data = {k: {'1-3': 0, '3-5': 0, '5-7': 0, '7-10': 0, '10+': 0} for k, v in data.items()}
for k, v in data.items():
for value in v.values():
if 1 < value <= 3:
post_data[k]['1-3'] += 1
elif 3 < value <= 5:
post_data[k]['3-5'] += 1
#TODO add more conditions
print(post_data)

输出
{938742158: {'1-3': 2, '3-5': 4, '5-7': 0, '7-10': 0, '10+': 0}, 938735955: {'1-3': 2, '3-5': 2, '5-7': 0, '7-10': 0, '10+': 0}}

相关内容

  • 没有找到相关文章

最新更新