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

如何从包含字典列表的字典创建指定格式的DataFrame?

实现方法

可以通过以下步骤用 pandas 生成目标格式的 DataFrame:

  1. 遍历原字典的每个外层键(dic1、dic2),提取对应子字典中值为True和False的键;
  2. 将两组键列表补全到相同长度(短的列表用空字符串填充);
  3. 为每个外层键生成临时 DataFrame,仅第一行保留外层键作为索引,其余行索引为空字符串;
  4. 合并所有临时 DataFrame 得到最终结果。

完整代码

import pandas as pd

adict = {'dic1': [{'a': True, 'b': False, 'c': True, 'd': True, 'z': False}],
         'dic2': [{'e': True, 'f': False, 'g': False}]}

dfs = []
for main_key, sub_list in adict.items():
    # 取出子字典(原字典的值是包含单个字典的列表)
    sub_dict = sub_list[0]
    # 分别筛选True和False对应的键
    true_keys = [k for k, v in sub_dict.items() if v]
    false_keys = [k for k, v in sub_dict.items() if not v]
    # 确定需要生成的行数(取两组键的最大长度)
    max_rows = max(len(true_keys), len(false_keys))
    # 补全列表长度,确保两组数据行数一致
    true_padded = true_keys + [''] * (max_rows - len(true_keys))
    false_padded = false_keys + [''] * (max_rows - len(false_keys))
    # 生成索引:第一行是外层键,其余行留空
    idx = [main_key] + [''] * (max_rows - 1)
    # 创建临时DataFrame并加入列表
    temp_df = pd.DataFrame({'True': true_padded, 'False': false_padded}, index=idx)
    dfs.append(temp_df)

# 合并所有临时DataFrame
result_df = pd.concat(dfs)
print(result_df)

输出结果

True False
dic1        a     b
            c     z
            d      
dic2        e     f
                  g

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 18:48:24