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

高效将Pandas DataFrame转为指定结构JSON Lines的方法(大数据场景)

高效转换Pandas DataFrame为指定结构的JSON Lines格式

示例输入数据

import pandas as pd

data = {
    'my_index': [1, 2],
    'start': ['2023-12-28 00:00:00', '2023-12-29 00:00:00'],
    'target': [['value1', 'value2'], ['value3']],
    'dynamic_feat': [[['feat1', 'feat2'], ['feat3']], [['feat4']]]
}

df = pd.DataFrame(data)

期望输出的JSON Lines格式

{"my_index": 1, "features": {"start": "2023-12-28 00:00:00", "target": ["value1", "value2"], "dynamic_feat": [["feat1", "feat2"], ["feat3"]]}}
{"my_index": 2, "features": {"start": "2023-12-29 00:00:00", "target": ["value3"], "dynamic_feat": [["feat4"]]}}

高效实现方案

直接用Pandas的矢量化操作,全程避免逐行迭代,完美适配大数据量场景:

# 第一步:把除my_index外的所有列打包成features列(每行对应一个字典)
df['features'] = df.drop('my_index', axis=1).apply(dict, axis=1)

# 第二步:保留目标列并直接导出为JSON Lines格式
# 输出到控制台
print(df[['my_index', 'features']].to_json(orient='records', lines=True))

# 如果要写入文件,用以下代码(内存效率更高)
# df[['my_index', 'features']].to_json('output.jsonl', orient='records', lines=True)

方案优势说明

  • apply(dict, axis=1)是Pandas内部优化的矢量化操作,比手动循环效率高几个数量级,内存占用更低;
  • to_json(orient='records', lines=True)直接在底层生成符合要求的JSON Lines格式,无需额外数据结构转换;
  • 全程基于Pandas原生优化逻辑,无需拆分数据集处理,适配百万级甚至更大规模的DataFrame。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 11:01:13