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

如何基于给定字典按行列填充规则生成指定结构DataFrame

实现代码

直接基于pandas和numpy实现,逻辑完全匹配给定填充规则,代码如下:

import pandas as pd
import numpy as np

# 原始输入字典
source_dict = {1: [1,2,3,4,5], 6: 6, 7: [7,8], 9: {}, 10: {}}
# 统一用1-10作为行索引和列名
idx_range = list(range(1, 11))
# 先初始化全0的10*10矩阵,默认所有位置填充0
df = pd.DataFrame(
    np.zeros((len(idx_range), len(idx_range)), dtype=int),
    index=idx_range,
    columns=idx_range
)

for key, val in source_dict.items():
    # 对应值为空字典时直接跳过,保持原有0值即可
    if isinstance(val, dict) and not val:
        continue
    # 把单值格式的取值统一转为列表,方便批量索引
    if not isinstance(val, list):
        val = [val]
    # 将指定行、列交叉的位置批量赋值为1
    df.loc[val, val] = 1

# 设置首列表头
df.index.name = "A header"
效果验证

运行代码后生成的DataFrame完全符合规则要求:

  • 键1对应取值覆盖1-5,行1到5、列1到5的交叉区域全部填充1
  • 键6对应取值为6,仅行6、列6的交叉位置填充1
  • 键7对应取值覆盖7、8,行7到8、列7到8的交叉区域全部填充1
  • 键9、10对应值为空字典,两行及对应列所有位置均保持0
  • 其余未被规则命中的位置全部填充0

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.02 01:18:30