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

如何将多字典数组转换为指定格式的Pandas DataFrame?

解决方案

你的原始数据是包含多组键值映射的字典列表,直接转成DataFrame会导致每个字典占一行、缺失键填充NaN,这也是dropna()和head()达不到预期的原因。要实现每行显示一个键值对的格式,需要先拆分每个字典的键值对,再重组为DataFrame。

代码实现

带分组标识(区分不同字典的来源)

如果需要明确每个键值对属于哪一组(比如第一组是工作类型、第二组是婚姻状态),可以添加分组列:

import pandas as pd

# 你的原始数据
data = [{'Federal-gov': 0, 'Local-gov': 1, 'Never-worked': 2},
        {'Divorced': 0, 'Married-AF-spouse': 1, 'Married-civ-spouse': 2, 
         'Married-spouse-absent': 3, 'Never-married': 4, 'Separated': 5, 'Widowed': 6}]

rows = []
# 遍历每个字典,拆分键值对并添加分组标识
group_names = ["工作类型", "婚姻状态"]  # 自定义分组名称,更直观
for group, d in zip(group_names, data):
    for category, code in d.items():
        rows.append({"分组": group, "类别": category, "编码": code})

# 生成最终DataFrame
result_df = pd.DataFrame(rows)
print(result_df)

不带分组标识

如果不需要区分来源,直接提取所有键值对即可:

import pandas as pd

data = [{'Federal-gov': 0, 'Local-gov': 1, 'Never-worked': 2},
        {'Divorced': 0, 'Married-AF-spouse': 1, 'Married-civ-spouse': 2, 
         'Married-spouse-absent': 3, 'Never-married': 4, 'Separated': 5, 'Widowed': 6}]

rows = []
for d in data:
    for category, code in d.items():
        rows.append({"类别": category, "编码": code})

result_df = pd.DataFrame(rows)
print(result_df)

输出示例(带分组)

分组                类别  编码
0  工作类型        Federal-gov   0
1  工作类型          Local-gov   1
2  工作类型       Never-worked   2
3  婚姻状态            Divorced   0
4  婚姻状态   Married-AF-spouse   1
5  婚姻状态  Married-civ-spouse   2
6  婚姻状态  Married-spouse-absent   3
7  婚姻状态       Never-married   4
8  婚姻状态           Separated   5
9  婚姻状态             Widowed   6

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 05:01:41