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

如何将键为(i,j)元组的矩阵式字典转换为指定结构的Pandas DataFrame

解决方案:将元组键字典转换为指定格式的Pandas DataFrame

步骤说明

  • 从字典中分离出行名、列名与核心数据
  • 按顺序整理数据后构造目标DataFrame

代码实现

以你提供的示例字典为例:

import pandas as pd

matrix_dict = {
    (0, 0): 'RowIndex\\ColumnIndex',
    (0, 1): 'Column1',
    (0, 2): 'Column2',
    (1, 0): 'Row1',
    (1, 1): 1,
    (1, 2): 2,
    (2, 0): 'Row2',
    (2, 1): 3,
    (2, 2): 4
}

# 1. 提取行名:筛选(i,0)且i≥1的项,按i排序
row_names = [v for k, v in sorted(matrix_dict.items()) if k[1] == 0 and k[0] > 0]

# 2. 提取列名:筛选(0,j)且j≥1的项,按j排序
col_names = [v for k, v in sorted(matrix_dict.items()) if k[0] == 0 and k[1] > 0]

# 3. 提取数据:按行号顺序,提取每行对应的列数据
data_rows = []
for i in range(1, len(row_names)+1):
    row_data = [matrix_dict[(i, j)] for j in range(1, len(col_names)+1)]
    data_rows.append(row_data)

# 4. 构造最终DataFrame
df = pd.DataFrame(data_rows, index=row_names, columns=col_names)
print(df)

输出结果

Column1  Column2
Row1         1        2
Row2         3        4

通用适配说明

如果你的字典包含更多行列,这段代码无需修改即可适配:

  • row_names会自动按i从小到大提取所有(i,0)对应的行名
  • col_names会自动按j从小到大提取所有(0,j)对应的列名
  • data_rows会按行号顺序,依次提取每行的所有列数据

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 00:48:36