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

如何将DataFrame字典列的键值对转换为新结构化DataFrame?

提取DataFrame嵌套字典列生成新DataFrame

需求说明

现有DataFrame的schedules列存储着嵌套字典,需要将所有行中字典的键值对提取出来,生成指定结构的新DataFrame:

初始状态

>>> df['schedules']
0     {'3263524': 'Group 1 CORE DAYS', '3263525': 'Group 1 CORE NIGHTS', '3263526': 'Group 1 EDUCATION', '3263527': 'Group 1 ROUNDING'}
1     {'3263524': 'Group 1 CORE DAYS', '3881368': 'VS Days', '3881370': 'VS Education Shift A', '3881455': 'VS Education Shift B'}
...

期望输出

>>> df_schedules
          id            schedule_name
0    3263524        Group 1 CORE DAYS
1    3263525      Group 1 CORE NIGHTS
2    3263526        Group 1 EDUCATION
3    3263527         Group 1 ROUNDING
4    3881368                  VS Days
5    3881370     VS Education Shift A
6    3881455     VS Education Shift B

解决方案

你之前的方法仅处理了单行数据,要实现全量提取,可通过以下代码完成:

# 遍历schedules列的每个字典,转换为带指定列名的DataFrame
individual_dfs = [pd.DataFrame.from_dict(item, orient='index', columns=['schedule_name']) for item in df['schedules']]

# 合并所有单行结果
df_schedules = pd.concat(individual_dfs)

# 将原索引(字典的键)转为id列,并重置行索引
df_schedules = df_schedules.reset_index(names='id').reset_index(drop=True)

代码说明

  • 用列表推导式遍历schedules列的每个字典,通过orient='index'将字典的键设为临时索引,值存入schedule_name列
  • pd.concat()将所有单行生成的小DataFrame合并为一个完整表
  • reset_index(names='id')把临时索引(原字典的键)转为正式的id列,再用reset_index(drop=True)生成从0开始的连续行索引

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 11:44:55