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

如何用Python将Pandas生成的混淆矩阵转换为JSON格式?

如何将Pandas混淆矩阵转换为正确的JSON格式?

看起来你已经成功生成了带清晰标签的混淆矩阵DataFrame,现在卡在了JSON转换这一步。你的现有代码思路是把矩阵包装成字典再转JSON,但方式有点绕,而且没选对正确的参数,我来给你几个简单靠谱的解决方案:

方法1:直接将DataFrame转为JSON(保留索引和列标签)

你可以直接对生成的confusionmatrix调用Pandas的to_json()方法,通过指定orient参数来控制JSON的结构。如果想保留你现有的行/列标签层级,用orient='index'最合适:

# 生成混淆矩阵(你的原有代码)
confusionmatrix = pd.DataFrame(
    confusion_matrix(test["Churn"], predictions),
    columns=["Predicted False", "Predicted True"],
    index=["Actual False", "Actual True"]
)

# 直接转换为格式化后的JSON
confusion_json = confusionmatrix.to_json(orient='index', indent=4)

生成的JSON结构会完整保留你的标签逻辑:

{
    "Actual False": {
        "Predicted False": 877,
        "Predicted True": 100
    },
    "Actual True": {
        "Predicted False": 183,
        "Predicted True": 179
    }
}

方法2:包装成你想要的嵌套结构(带confusionmatrix顶级键)

如果你希望最终的JSON外层有confusionmatrix这个顶级键,那可以先把DataFrame转成字典,再包装成指定结构,最后用json.dumps()格式化:

import json

# 先将DataFrame转为字典(保留索引结构)
matrix_dict = confusionmatrix.to_dict(orient='index')
# 包装成目标嵌套结构
results = {'confusionmatrix': matrix_dict}
# 转为格式化后的JSON
final_json = json.dumps(results, indent=4)

这会得到你最初想要的结构:

{
    "confusionmatrix": {
        "Actual False": {
            "Predicted False": 877,
            "Predicted True": 100
        },
        "Actual True": {
            "Predicted False": 183,
            "Predicted True": 179
        }
    }
}

为什么你的原有代码不行?

你之前尝试把DataFrame放到列表里再转Series,这种方式会让结构变得冗余,而且没有正确利用Pandas的内置方法来保留索引和列名。直接操作DataFrame本身的转换方法会更简洁可靠。

另外,orient参数还有其他选项可以满足不同需求:

  • orient='columns':会以列名为顶级键,行索引作为子键
  • orient='split':会把数据、索引、列名分开存储,适合需要拆分结构的场景

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:21:59