首页 > 解决方案 > 如何使用 Python Pandas “合并/添加” 2 个具有相同列和行的混淆矩阵数据框?

问题描述

我正在寻找一种有效的解决方案来使用 Python Pandas 数据框执行以下操作:

                 Iris-setosa  Iris-versicolor  Iris-virginica
Iris-setosa                4                0               0
Iris-versicolor            0                1               3
Iris-virginica             0                0               7

合并/求和:

                 Iris-setosa  Iris-versicolor  Iris-virginica
Iris-setosa                6                0               0
Iris-versicolor            0                2               2
Iris-virginica             0                0               5

对于最终结果:

                 Iris-setosa  Iris-versicolor  Iris-virginica
Iris-setosa               10                0               0
Iris-versicolor            0                3               5
Iris-virginica             0                0               12

我的实际混淆矩阵要大得多,所以我正在寻找一个有效的解决方案。

我试过蛮力遍历每个矩阵的每个索引并将它们相加,但这非常不雅,我想学习一种更快的方法。

标签: pythonpandasdataframematrix

解决方案


IIUC,我们可以使用concatgroupby沿着索引使用sum来获得值的总和。

df3 = pd.concat([df1,df2]).groupby(level=0).sum()
print(df3)
                     Iris-setosa  Iris-versicolor  Iris-virginica
Iris-setosa               10                0               0
Iris-versicolor            0                3               5
Iris-virginica             0                0              12

如果索引是绝对对齐的,我们可以对整个数据框求和。

df3 = df1 + df2
print(df3)

                 Iris-setosa  Iris-versicolor  Iris-virginica
Iris-setosa               10                0               0
Iris-versicolor            0                3               5
Iris-virginica             0                0              12

推荐阅读