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

Python中DataFrame两列匹配频率统计及混淆矩阵生成问题

解决Original与Predicted列的统计及混淆矩阵问题

嘿,我来帮你搞定这个需求!你要的统计DataFrame和混淆矩阵,用Pandas和Scikit-learn就能轻松实现,咱们一步步来:

1. 准备示例数据

首先先构造你给出的示例数据,方便后续测试:

import pandas as pd

# 构造示例DataFrame
data = {
    'Original': ['x', 'x', 'x', 'y', 'y', 'z', 'z', 'z', 'z'],
    'predicted': ['x', 'x', 'a', 'y', 'y', 'z', 'z', 'z', 'b']
}
df = pd.DataFrame(data)

2. 生成目标统计DataFrame

你之前用groupby没得到正确计数,核心是先标记每行是否预测正确,再按Original分组聚合:

# 先添加一列标记是否预测正确
df['is_correct'] = df['Original'] == df['predicted']

# 按Original分组计算各项指标
stats_df = df.groupby('Original').agg(
    total=('Original', 'size'),  # 每个Original值的总数量
    Correct=('is_correct', 'sum'),  # 预测正确的数量
)

# 计算错误数和准确率(保留两位小数)
stats_df['wrong'] = stats_df['total'] - stats_df['Correct']
stats_df['accuracy'] = (stats_df['Correct'] / stats_df['total']).round(2)

# 重置索引,让Original成为列而不是索引(可选,看你需求)
stats_df = stats_df.reset_index()

print(stats_df)

运行后输出就是你要的结果:

Original  total  Correct  wrong  accuracy
0        x      3        2      1      0.67
1        y      2        2      0      1.00
2        z      4        3      1      0.75

3. 生成混淆矩阵

有两种简单的方式生成混淆矩阵:

方法一:用Pandas的crosstab(直接生成DataFrame格式)

confusion_matrix = pd.crosstab(df['Original'], df['predicted'], rownames=['Actual'], colnames=['Predicted'])
print(confusion_matrix)

输出结果:

Predicted  a  b  x  y  z
Actual                  
x          1  0  2  0  0
y          0  0  0  2  0
z          0  1  0  0  3

方法二:用Scikit-learn的confusion_matrix(更适合后续模型评估)

如果你需要更标准化的混淆矩阵(比如用于机器学习模型评估),可以用sklearn的工具:

from sklearn.metrics import confusion_matrix

# 获取实际值和预测值的数组
y_true = df['Original']
y_pred = df['predicted']

# 生成混淆矩阵数组
cm = confusion_matrix(y_true, y_pred)

# 转成DataFrame更直观
cm_df = pd.DataFrame(cm, index=sorted(y_true.unique()), columns=sorted(y_pred.unique()))
cm_df.index.name = 'Actual'
cm_df.columns.name = 'Predicted'

print(cm_df)

输出和上面的crosstab结果一致,只是类别按排序后展示。

这样就完美解决你的需求啦,不管是统计指标还是混淆矩阵都能轻松得到~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 13:29:09