如何将Pandas分组结果转换为无表头的JSON字典数组?
问题:将分组后的DataFrame转换为无表头的JSON字典数组
我有一个名为grouped的分组结果DataFrame,数据如下:
long_url counts 3 reddit.com 542 2 linkedin.com 529 4 twitter.com 525 1 google.com 502 0 github.com 476 5 youtube.com 469
希望将其转换为如下格式的JSON字典数组:
[{"reddit.com": 542}, {"linkedin.com" : 529}, ...]
当前使用以下代码:
import json grou=json.dumps(grouped.reset_index(drop=True).to_dict(orient='records')) grou
得到的结果是带表头的,不符合预期:
'[{"long_url": "reddit.com", "counts": 542}, {"long_url": "linkedin.com", "counts": 529}, {"long_url": "twitter.com", "counts": 525}, {"long_url": "google.com", "counts": 502}]'
请问如何实现不带表头的目标?
解决方案
你可以通过遍历DataFrame的每一行,将每行的long_url作为键、counts作为值构造单个字典,再把这些字典收集成列表后转成JSON:
import json # 遍历每行构造目标字典列表 result_list = [{row['long_url']: row['counts']} for _, row in grouped.iterrows()] # 转换为JSON字符串 grou = json.dumps(result_list) print(grou)
执行后会得到你需要的格式:
[{"reddit.com":542},{"linkedin.com":529},{"twitter.com":525},{"google.com":502},{"github.com":476},{"youtube.com":469}]
如果你的DataFrame行数较多,想要更高效的处理,可以用apply方法:
import json result_list = grouped.apply(lambda row: {row['long_url']: row['counts']}, axis=1).tolist() grou = json.dumps(result_list)
这两种方式都能直接生成无表头的字典数组,再转成符合要求的JSON格式。
内容的提问来源于stack exchange,提问作者llllaaa
相关产品推荐
相关产品推荐

