如何将Pandas DataFrame按key分组并转换为指定格式的JSON?
解决方法
问题根源是分组后未剔除key列就直接生成JSON,导致结果中包含多余的key字段。只需在分组处理时先移除key列,再生成目标格式即可。
完整代码示例
import pandas as pd import json # 构造示例DataFrame df = pd.DataFrame({ 'key': ['a', 'a', 'c'], 'val1': ['a1', 'b1', 'c1'], 'val2': ['a2', 'b2', 'c2'] }) # 分组处理:删除key列后转records格式,最终转为目标字典结构 grouped_result = df.groupby('key').apply( lambda group: group.drop('key', axis=1).to_dict(orient='records') ).to_dict() # 格式化输出JSON print(json.dumps(grouped_result, indent=2))
代码说明
groupby('key'):按key列完成数据分组lambda group: group.drop('key', axis=1).to_dict(orient='records'):对每个分组先删除key列,再将剩余数据转为records格式的字典列表(比直接转JSON更便于后续构造目标结构).to_dict():将分组结果直接转为以key值为键的字典json.dumps(..., indent=2):格式化输出JSON,让结构更清晰
最终输出
{ "a": [ { "val1": "a1", "val2": "a2" }, { "val1": "b1", "val2": "b2" } ], "c": [ { "val1": "c1", "val2": "c2" } ] }
内容的提问来源于stack exchange,提问作者S_S
相关产品推荐
相关产品推荐

