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

如何将含ess_skills列表的职业字典转换为Pandas DataFrame?

实现方法

这里提供一种高效的Pandas处理方案,直接实现技能拆分并关联职业信息:

步骤说明

  • 将原始职业字典转为初始DataFrame
  • 拆分技能列表为单独行,保留对应职业信息
  • 展开技能字典为独立列
  • 整理格式后导出Excel

代码示例

1. 模拟职业字典(对应你的occupations数据结构)

occupations = [
    {
        "title": "软件工程师",
        "code": "SE001",
        "ess_skills": [
            {"title": "Python编程", "description": "熟练使用Python进行后端开发"},
            {"title": "数据库设计", "description": "能设计高可用的关系型数据库"}
        ]
    },
    {
        "title": "数据分析师",
        "code": "DA001",
        "ess_skills": [
            {"title": "SQL查询", "description": "编写高效的SQL语句提取数据"},
            {"title": "数据可视化", "description": "用Tableau制作业务报表"}
        ]
    }
]

2. 核心处理代码

import pandas as pd

# 转换为初始DataFrame
df = pd.DataFrame(occupations)

# 拆分技能列表,每个技能单独成行
df_exploded = df.explode("ess_skills", ignore_index=True)

# 把技能字典展开为单独的列
df_final = pd.concat(
    [
        df_exploded[["title", "code"]],
        df_exploded["ess_skills"].apply(pd.Series)
    ],
    axis=1
)

# 重命名列避免冲突,优化表头可读性
df_final.rename(
    columns={
        "title": "职业名称",
        "code": "职业代码",
        "title": "技能名称",
        "description": "技能描述"
    },
    inplace=True
)

# 导出到Excel
df_final.to_excel("职业技能明细.xlsx", index=False)

关键说明

  • explode("ess_skills"):Pandas内置方法,专门用于将列表类型的列拆分为多行,自动保留每行对应的其他字段
  • apply(pd.Series):将字典类型的元素转换为DataFrame的列,实现字典键到列名的映射
  • ignore_index=True:拆分后重置索引,避免出现重复索引问题
  • 如果存在空技能列表的职业,explode会自动生成对应空行,可根据需求用dropna()过滤

内容的提问来源于stack exchange,提问作者b.waterreus

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 07:32:49