如何用Pandas按日期属性分组JSON对象并求和attribute1
按日期分组求和attribute1的Pandas实现
实现步骤
- 导入pandas和json库
- 加载原始JSON数据并提取需要处理的列表(原JSON结构完全保留)
- 将列表转换为Pandas DataFrame
- 按日期分组,对
attribute1字段求和
完整代码示例
import pandas as pd import json # 模拟你的原始JSON数据(实际场景可通过json.load(open('你的文件路径.json'))读取) raw_json = { "myroot": [{ "attribute1": 10, "date":"2023-08-01" }, { "attribute1": 5, "date":"2023-08-02" }, { "attribute1": 100, "date":"2023-08-02" }, { "attribute1": 2, "date":"2023-08-01" }] } # 仅提取需要处理的列表,原JSON结构丝毫不改 data_list = raw_json["myroot"] # 转换为Pandas表格格式,方便分组计算 df = pd.DataFrame(data_list) # 按date字段分组,对每组的attribute1求和 sum_result = df.groupby('date')['attribute1'].sum().reset_index() # 打印最终结果 print(sum_result)
代码说明
- 原始JSON数据
raw_json全程不会被修改,只是读取其中的myroot列表用于计算 groupby('date')负责把相同日期的行归为一组,['attribute1'].sum()对每组的数值求和,reset_index()把分组后的索引转为普通列,让结果更易读
运行结果
date attribute1 0 2023-08-01 12 1 2023-08-02 105
如果需要把求和结果转回JSON格式(比如生成新的统计结构),可以加这段代码:
# 将结果转为字典列表,再包装成自定义JSON结构(原JSON仍未改动) result_json = {"sum_by_date": sum_result.to_dict('records')} print(result_json)
输出示例:
{'sum_by_date': [{'date': '2023-08-01', 'attribute1': 12}, {'date': '2023-08-02', 'attribute1': 105}]}
内容的提问来源于stack exchange,提问作者user5510222
相关产品推荐
相关产品推荐

