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

如何对Pandas Crosstab的行和列名称进行排序?

解决方案

核心思路

要让高数值集中在对角线上,需要同时将交叉表的行和列按指定顺序排列,确保行和列的类别一一对应,这样对角线位置就是原标签与预测标签一致的情况,数值自然最高。

具体实现代码

# 定义你需要的目标顺序列表
target_order = ['ar', 'cs', 'de', 'en', 'es', 'fr', 'hi', 'it', 'ja', 'ko', 'pl', 'pt', 'ru', 'tr', 'zh', 'be', 'gl', 'la', 'nn', 'sa', 'ur']

# 生成交叉表并按目标顺序重新索引行和列,缺失类别填充0
self.df_confusion = pd.crosstab(orig, pred).reindex(index=target_order, columns=target_order, fill_value=0)

关键说明

  • reindex方法可同时调整行(index参数)和列(columns参数)的顺序,完美对齐类别;
  • fill_value=0用于处理目标列表中存在但原数据未出现的语言类别,避免空值;
  • 若之前仅调整列或仅调整行,会导致行和列的类别顺序不匹配,对角线无法对齐高数值,这就是之前尝试失败的原因。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 00:47:15