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

如何将Pandas DataFrame均等拆分并转为无表头JSON格式?

解决Pandas DataFrame拆分并转为指定格式JSON的问题

核心方案

你可以通过两种方式实现需求:要么先将DataFrame转为无表头的一维列表集合,再拆分;要么拆分DataFrame后逐个处理为一维列表,最终组合成目标格式再转JSON。


方法一:先转列表再拆分(更简洁)

直接将整个DataFrame的列值转为一维列表,再拆分后生成JSON:

import pandas as pd
import numpy as np
import json

# 创建示例DataFrame
myDf = pd.DataFrame(['banana', 'apple', 'watermelon','grapes','cherry', 'blueberry'], columns=['fruit'])

# 提取列值为一维列表
full_fruit_list = myDf['fruit'].tolist()
# 均等拆分为n份(这里n=2)
split_groups = np.array_split(full_fruit_list, 2)
# 转换为普通Python列表(numpy数组转列表)
result = [list(group) for group in split_groups]

# 生成指定格式的JSON
json_result = json.dumps(result, indent=4)
print(json_result)

方法二:拆分DataFrame后处理(适配你的原有思路)

如果坚持先拆分DataFrame,只需修正子DataFrame的转换逻辑,直接提取列的一维列表即可:

import pandas as pd
import numpy as np
import json

myDf = pd.DataFrame(['banana', 'apple', 'watermelon','grapes','cherry', 'blueberry'], columns=['fruit'])

# 拆分DataFrame为n个子DataFrame
fruitList = np.array_split(myDf, 2)

result = []
for sub_df in fruitList:
    # 直接提取子DataFrame的'fruit'列为一维列表
    sub_list = sub_df['fruit'].tolist()
    result.append(sub_list)

# 生成JSON
json_result = json.dumps(result, indent=4)
print(json_result)

输出结果(与预期一致)

[
    [
        "banana",
        "apple",
        "watermelon"
    ],
    [
        "grapes",
        "cherry",
        "blueberry"
    ]
]

为什么你的原有方法没得到预期结果?

你之前用json.loads(...)处理orient='values'的JSON,得到的是二维嵌套列表(比如[['banana'], ['apple']]),而需求是一维子列表。直接用df['fruit'].tolist()就能拿到一维结构,不需要额外的JSON解析步骤。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 18:35:28