【问题标题】:how to group by keys with respect of some part of values in python?python - 如何根据python中的某些部分值按键分组?
【发布时间】:2021-01-19 15:27:05
【问题描述】:

我有一个带有 keysResults 的 json 文件。结果有 3 个部分。像这样:

df.json()[0]['Results'][0]

{'categoryId': '2674',
 'categoryName': 'software engineer',
 'score': '1.0377672767639161'}

我想收集结果中具有相同categoryName 的所有keys。然后数一数。有可能吗?

【问题讨论】:

  • 你要统计不同categoryNames的个数,还是每个组的元素个数?
  • 另外,请举一个更广泛的例子,不仅仅是一个结果 + 预期输出
  • 每组元素个数

标签: python json dictionary


【解决方案1】:

一种方法是通过以下方式之一迭代每个组:如果您只想知道一个组的计数,您可以这样做:

category_name = "software engineer"
count = 0
for cat in df.json()[0]['Results']:
    if cat['categoryName'] == category_name:
        count += 1

如果您想同时计算所有类别,您也可以这样做:

category_count = {}
for cat in df.json()[0]['Results']:
   category = cat['categoryName']
   if category in category_count.keys():
       category_count[category] += 1
    else:
        category_count[category] = 1

获取对应的key可以这样做:

category_count = {}
for key, cat in enumerate(df.json()[0]['Results']):
   category = cat['categoryName']
   if category in category_count.keys():
       category_count[category].append(key)
    else:
        category_count[category] = [key]

这样您就可以使用categoryName="software engineer" 获取所有密钥,如下所示:category_count["software_engineer"]

【讨论】:

  • 不是很 Pythonic
  • 我没有 categoryNames
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-03-25
  • 2018-03-19
  • 2018-02-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多