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

Python2.7下拆分Pandas列中的字典并生成新DataFrame

没问题,我来帮你搞定这个需求!针对Python2.7环境下处理带字典的DataFrame列拆分,我给你整理了完整的步骤和代码:

1. 先装必要的依赖

因为Python2.7的pandas读取Excel得靠xlrd库,而且得选兼容Python2.7的版本,直接跑下面的命令就行:
pip install pandas==0.24.2 xlrd==1.2.0
(注:这俩版本是亲测能在Python2.7上正常跑的,高版本的pandas和xlrd已经不支持Python2了)

2. 读取Excel文件到DataFrame

假设你的Excel文件名叫data.xlsx,用pandas的read_excel就能轻松读进来:

import pandas as pd

# 读取Excel文件
df = pd.read_excel('data.xlsx')
print("原始DataFrame:")
print(df)

跑完这部分,你就能得到题目里给出的原始df结构了。

3. 拆分category列,转成目标格式

由于Python2.7的pandas没有后来的explode方法,咱们换个思路用apply+stack来处理字典列,代码如下:

# 把每个字典转成Series,再堆叠展开成行
df_expanded = df['CATEGORY'].apply(pd.Series).stack().reset_index(level=1)

# 重命名列名,匹配你要的结构
df_expanded.columns = ['CATEGORY_ID', 'CATEGORY_NAME']

# 重置索引(可选,看你要不要保留原来的索引)
df2 = df_expanded.reset_index(drop=True)

print("拆分后的DataFrame:")
print(df2)

给你解释下每一步:

  • apply(pd.Series)会把每个单元格里的字典拆成列,字典的键是列名,对应的值就是单元格内容;
  • stack()会把这些列转成行,形成多级索引;
  • reset_index(level=1)把原来的列名(也就是字典的键)提取出来作为CATEGORY_ID,对应的值就是CATEGORY_NAME;
  • 最后重置索引后,就得到了你想要的df2结构。

拿你给的示例数据测试,跑出来的df2就是:

CATEGORY_IDCATEGORY_NAME
60SHOES
46HARDWARE
60SHOES
219GOVERNMENT OFFICE
87ARCADES
60SHOES

完全符合要求!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 10:23:08