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

使用DataFrame处理API响应空字段时列顺序错乱问题求助

DataFrame处理API响应空字段时列顺序错乱问题求助

嘿,这个问题我之前也碰到过!其实解决起来很简单,核心就是强制指定DataFrame的列顺序,不让pandas自动推断列的排列。

你现在的代码里,虽然用列表推导式生成了对应ref_ids的字典,但有时候pandas在创建DataFrame时,可能会因为字典内部顺序(尤其是旧版pandas,或者遇到缺失字段的情况)打乱列的排列逻辑。直接在创建DataFrame的时候显式指定columns参数就能完美解决:

修改你的代码成这样:

soi = [
    {market_id: ref_security.get(market_id, None) for market_id in ref_ids}
    for ref_security in ref_securities
]
# 显式指定columns参数,强制列顺序和ref_ids一致
final_df = pd.DataFrame(soi, columns=ref_ids)

这样不管每条记录里的字段有没有缺失、顺序如何,最终DataFrame的列都会严格按照你定义的ref_ids顺序来排列。

另外还有一种更简洁的写法,甚至可以跳过列表推导式的步骤,直接用pd.json_normalize处理并指定列顺序:

final_df = pd.json_normalize(ref_securities)[ref_ids]

pd.json_normalize会自动处理缺失的字段并填充NaN,之后你直接用[ref_ids]切片,就能得到指定顺序的列了,代码更短也更易读。

试试这两种方法,应该都能解决你的列顺序错乱问题!

备注:内容来源于stack exchange,提问作者Sachin

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.14 12:08:05