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

如何将Pandas DataFrame转换为API要求的指定嵌套JSON格式

问题原因

你当前代码的问题出在分组后调用to_dict(orient='records')的返回值上:即便每个ts分组仅对应1行数据,该方法也会返回包含单字典的列表,这就是你values字段变成列表结构的原因。

解决方案

方案1:修改原有groupby逻辑

只需在to_dict调用后取列表的第一个元素即可,修改后代码如下:

cols = df.columns.difference(['ts'])
payload = (df.groupby(['ts'])[cols]
    .apply(lambda x: x.to_dict(orient='records')[0]) # 追加[0]取分组内的第一个字典元素
    .reset_index(name='values')
    .to_dict(orient='records'))

方案2:更简洁的无groupby实现

观察你的样例数据可发现每行的ts值都是唯一的,没有重复的时间戳,完全不需要用到分组逻辑,直接按行遍历构造即可,性能更高:

cols = df.columns.difference(['ts'])
payload = df.apply(lambda row: {
    "ts": row["ts"],
    "values": row[cols].to_dict()
}, axis=1).tolist()

两种方案生成的payload都完全符合你给出的API要求格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 17:18:04