Python不使用pandas如何实现字典列表按时间字段分组透视?
实现方案
你可以用Python内置的字典做分组映射完成合并,无需引入第三方库,实现代码如下:
# 原始数据 original_data = [ {'eventTimeMinutes': '2021-10-31 00:00', 'View': 4}, {'eventTimeMinutes': '2021-10-31 00:00', 'Delete': 4}, {'eventTimeMinutes': '2021-10-31 00:00', 'Create': 2}, {'eventTimeMinutes': '2021-10-31 00:00', 'Modify': 1}, {'eventTimeMinutes': '2021-10-31 00:01', 'View': 4}, {'eventTimeMinutes': '2021-10-31 00:01', 'Delete': 1}, {'eventTimeMinutes': '2021-10-31 00:01', 'Create': 1}, {'eventTimeMinutes': '2021-10-31 00:01', 'Modify': 1} ] # 临时分组字典 group_map = {} for item in original_data: time_key = item['eventTimeMinutes'] # 若该时间未在分组中存在则初始化 if time_key not in group_map: group_map[time_key] = {'eventTimeMinutes': time_key} # 合并当前项的所有键值对,同字段存在时会覆盖,需累加可自行调整逻辑 group_map[time_key].update(item) # 转换为目标列表格式 result = list(group_map.values()) # 打印验证 print(result)
运行上述代码得到的输出和要求的目标结构完全一致:
[ {'eventTimeMinutes': '2021-10-31 00:00', 'View': 4, 'Delete': 4, 'Create': 2, 'Modify': 1}, {'eventTimeMinutes': '2021-10-31 00:01', 'View': 4, 'Delete': 1, 'Create': 1, 'Modify': 1} ]
内容的提问来源于stack exchange,提问作者mavinson1
相关产品推荐
相关产品推荐

