python - 如何使用 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
我的实际混淆矩阵要大得多,所以我正在寻找一个有效的解决方案。
我试过蛮力遍历每个矩阵的每个索引并将它们相加,但这非常不雅,我想学习一种更快的方法。
解决方案
IIUC,我们可以使用concat
和groupby
沿着索引使用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
推荐阅读
- gradle - Gradle 无法访问 azure artifacts
- wordpress - 使用 wordpress REST API 获取搜索片段
- deluge - Deluge中的数组到Json格式
- arrays - 在执行 array.map 之后也检索其他项目属性
- postgresql - 针对值列表的 Ecto 连接语法
- firebase - Cloud Functions 中的 Firestore runTransaction 第一次调用大约需要 5 秒
- javascript - javascript中的构造函数也是对象吗?
- msvcrt - 寻找 mac 的 msvcrt 库替代品
- python - 将列表写入excel中的特定列
- java - 如何从文本文件java中读取数字和字母的组合