You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

按列值将Pandas DataFrame保存为独立JSON文件的高效方法

按Firm拆分DataFrame并保存为独立JSON文件

针对你的需求,这里有两种高效且适合初学者的实现方式,都是基于Pandas的groupby功能(这是处理分组数据的最优方式,比手动遍历行效率高得多):

方法一:groupby + apply(简洁写法)

这种写法代码紧凑,利用Pandas的分组聚合逻辑完成操作:

import pandas as pd
import numpy as np

# 你的示例数据
df = pd.DataFrame(np.array([['facebook', '15',"women tennis"], ['facebook', '20',"men basketball"], ['facebook', '30','club'],
                          ['apple', "10","vice president"], ['apple', "100",'swimming contest']]),columns=['firm','id','text'])

# 定义保存分组的函数
def save_group(group):
    # 获取当前分组的firm名称
    firm = group['firm'].iloc[0]
    # 保存为JSON文件
    group.to_json(f"{firm}.json", orient='records', force_ascii=False)

# 对每个分组应用保存函数
df.groupby('firm').apply(save_group)

方法二:循环分组结果(直观易懂)

如果觉得apply的逻辑不够直观,也可以直接遍历分组后的结果,更适合新手理解:

import pandas as pd
import numpy as np

# 你的示例数据
df = pd.DataFrame(np.array([['facebook', '15',"women tennis"], ['facebook', '20',"men basketball"], ['facebook', '30','club'],
                          ['apple', "10","vice president"], ['apple', "100",'swimming contest']]),columns=['firm','id','text'])

# 遍历每个firm对应的分组
for firm_name, group_data in df.groupby('firm'):
    # 直接用firm名称作为文件名保存
    group_data.to_json(f"{firm_name}.json", orient='records', force_ascii=False)

关键参数说明

  • orient='records':将DataFrame的每一行转换为一个JSON对象,最终生成一个JSON数组,这种格式可读性强,也方便后续读取解析。
  • force_ascii=False:如果你的text字段包含中文等非ASCII字符,这个参数可以避免字符被转义,保留原始内容。

这两种方法处理10000行数据的速度都很快,因为groupby是Pandas内部优化过的操作,远快于手动逐行判断分组的方式。

内容的提问来源于stack exchange,提问作者Alicia_2024

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 21:12:41