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

如何将矩阵格式DataFrame归一化转换为三列结构DataFrame

Pandas 矩阵转三列长表实现方法

你要做的是邻接矩阵类宽表转为行-列-值结构的长表,直接用pandas内置的stack()方法即可实现,代码如下:

  • 首先构造和你示例一致的原始DataFrame,将第一列作为行索引:
import pandas as pd

# 原始矩阵数据
df = pd.DataFrame(
    data=[[1,2,3], [4,5,6], [7,8,9]],
    index=["A", "B", "C"],
    columns=["A", "B", "C"]
)
df.index.name = "C0"

此时打印df输出和你给出的原始矩阵完全一致:

A  B  C
C0         
A   1  2  3
B   4  5  6
C   7  8  9
  • 执行展开操作,重置索引后即可得到目标结构:
# 展开矩阵为长表格式
result = df.stack().reset_index()
# 按需重命名列即可
result.columns = ["first_col", "second_col", "value"]

打印result得到的输出和你预期完全匹配:

first_col second_col  value
0         A          A      1
1         A          B      2
2         A          C      3
3         B          A      4
4         B          B      5
5         B          C      6
6         C          A      7
7         C          B      8
8         C          C      9

说明:stack()会自动把所有列名旋转为二级行索引,对应的值和一级行索引(也就是你原始矩阵的行标签)一一配对,是pandas里处理这类矩阵转长表最高效的原生方法,不需要额外写循环遍历。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 21:21:39